summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/check.scm26
-rw-r--r--gnu/packages/patches/python2-parameterized-docstring-test.patch18
3 files changed, 41 insertions, 4 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index 59589f292a..c0aa92c56f 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1321,6 +1321,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/python-mox3-python3.6-compat.patch	\
   %D%/packages/patches/python-testtools.patch			\
   %D%/packages/patches/python-packaging-test-arch.patch		\
+  %D%/packages/patches/python2-parameterized-docstring-test.patch	\
   %D%/packages/patches/python-paste-remove-timing-test.patch	\
   %D%/packages/patches/python-pycrypto-CVE-2013-7459.patch	\
   %D%/packages/patches/python2-pygobject-2-gi-info-type-error-domain.patch \
diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm
index 5554965a06..e10e684d32 100644
--- a/gnu/packages/check.scm
+++ b/gnu/packages/check.scm
@@ -580,25 +580,43 @@ but it works for any C/C++ project.")
 (define-public python-parameterized
   (package
     (name "python-parameterized")
-    (version "0.6.1")
+    (version "0.7.1")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "parameterized" version))
        (sha256
         (base32
-         "1qj1939shm48d9ql6fm1nrdy4p7sdyj8clz1szh5swwpf1qqxxfa"))))
+         "1vapry9lyfb2mlpgk2wh9079hzxzq5120bsczncxxay663mdp53a"))))
     (build-system python-build-system)
-    (arguments '(#:tests? #f)) ; there are no tests
+    (arguments
+     '(#:phases (modify-phases %standard-phases
+                  (replace 'check
+                    (lambda* (#:key tests? #:allow-other-keys)
+                      (if tests?
+                          (invoke "nosetests" "-v")
+                          (format #t "test suite not run~%"))
+                      #t)))))
+    (native-inputs
+     `(("python-mock" ,python-mock)
+       ("python-nose" ,python-nose)))
     (home-page "https://github.com/wolever/parameterized")
     (synopsis "Parameterized testing with any Python test framework")
     (description
      "Parameterized is a Python library that aims to fix parameterized testing
 for every Python test framework.  It supports nose, py.test, and unittest.")
+    (properties `((python2-variant . ,(delay python2-parameterized))))
     (license license:bsd-2)))
 
 (define-public python2-parameterized
-  (package-with-python2 python-parameterized))
+  (let ((base (package-with-python2 (strip-python2-variant
+                                     python-parameterized))))
+    (package/inherit
+     base
+     (source
+      (origin
+        (inherit (package-source base))
+        (patches (search-patches "python2-parameterized-docstring-test.patch")))))))
 
 (define-public python-minimock
   (package
diff --git a/gnu/packages/patches/python2-parameterized-docstring-test.patch b/gnu/packages/patches/python2-parameterized-docstring-test.patch
new file mode 100644
index 0000000000..14691e1904
--- /dev/null
+++ b/gnu/packages/patches/python2-parameterized-docstring-test.patch
@@ -0,0 +1,18 @@
+Skip unicode docstring test, required when running on Python 2.
+
+See <https://github.com/wolever/parameterized/issues/44>.
+
+--- a/parameterized/test.py
++++ b/parameterized/test.py
+@@ -284,11 +284,6 @@
+             "        More" %(foo, )
+         )
+ 
+-    @parameterized.expand([param("foo")])
+-    def test_unicode_docstring(self, foo):
+-        u"""Döcumentation."""
+-        self._assert_docstring(u"Döcumentation [with foo=%r]." %(foo, ))
+-
+     @parameterized.expand([param("foo", )])
+     def test_default_values_get_correct_value(self, foo, bar=12):
+         """Documentation"""