~ruther/guix-local

9b65cdd902ec39115dbf3e0ad34e49f544ab4267 — Lars-Dominik Braun 6 years ago b2bdd7a
gnu: python-shouldbe: Python 3.8 compatibility.

* gnu/packages/patches/python-shouldbe-0.1.2-cpy3.8.patch: Add compatibility patch.
* gnu/local.mk (dist_patch_DATA): Add new file.
* gnu/packages/python-xyz.scm (python-shouldbe)[source]: Add patch.

Signed-off-by: Marius Bakke <mbakke@fastmail.com>
M gnu/local.mk => gnu/local.mk +1 -0
@@ 1434,6 1434,7 @@ dist_patch_DATA =						\
  %D%/packages/patches/python2-pygobject-2-gi-info-type-error-domain.patch \
  %D%/packages/patches/python-pygpgme-fix-pinentry-tests.patch	\
  %D%/packages/patches/python-robotframework-honor-source-date-epoch.patch \
  %D%/packages/patches/python-shouldbe-0.1.2-cpy3.8.patch	\
  %D%/packages/patches/python-slugify-depend-on-unidecode.patch	\
  %D%/packages/patches/python2-subprocess32-disable-input-test.patch	\
  %D%/packages/patches/python-unittest2-python3-compat.patch	\

A gnu/packages/patches/python-shouldbe-0.1.2-cpy3.8.patch => gnu/packages/patches/python-shouldbe-0.1.2-cpy3.8.patch +82 -0
@@ 0,0 1,82 @@
Fix compatibility with Python 3.8.

Upstream issue: https://github.com/DirectXMan12/should_be/pull/5

diff -x '*.pyc' -Naur shouldbe-0.1.2/should_be/core.py shouldbe-0.1.2.patched/should_be/core.py
--- shouldbe-0.1.2/should_be/core.py	2019-03-06 07:38:22.000000000 +0100
+++ shouldbe-0.1.2.patched/should_be/core.py	2020-05-18 08:44:24.214664704 +0200
@@ -103,7 +103,7 @@
     return resf
 
 
-def buildCode(baseCode, argcount=None, kwonlyargcount=None,
+def buildCode(baseCode, argcount=None, posonlyargcount=None, kwonlyargcount=None,
               nlocals=None, stacksize=None, flags=None,
               code=None, consts=None, names=None,
               varnames=None, filename=None, name=None,
@@ -121,6 +121,24 @@
                         nlocals or baseCode.co_nlocals,
                         stacksize or baseCode.co_stacksize,
                         flags or baseCode.co_flags,
+                        code or baseCode.co_code,
+                        consts or baseCode.co_consts,
+                        names or baseCode.co_names,
+                        varnames or baseCode.co_varnames,
+                        filename or baseCode.co_filename,
+                        name or baseCode.co_name,
+                        firstlineno or baseCode.co_firstlineno,
+                        lnotab or baseCode.co_lnotab,
+                        freevars or baseCode.co_freevars,
+                        cellvars or baseCode.co_cellvars)
+    elif hasattr(baseCode, 'co_posonlyargcount'):
+        # Python 3.8
+        resc = CodeType(argcount or baseCode.co_argcount,
+                        posonlyargcount or baseCode.co_posonlyargcount,
+                        kwonlyargcount or baseCode.co_kwonlyargcount,
+                        nlocals or baseCode.co_nlocals,
+                        stacksize or baseCode.co_stacksize,
+                        flags or baseCode.co_flags,
                         code or baseCode.co_code,
                         consts or baseCode.co_consts,
                         names or baseCode.co_names,
diff -x '*.pyc' -Naur shouldbe-0.1.2/should_be/tests/test_container_mixin.py shouldbe-0.1.2.patched/should_be/tests/test_container_mixin.py
--- shouldbe-0.1.2/should_be/tests/test_container_mixin.py	2019-03-01 06:38:16.000000000 +0100
+++ shouldbe-0.1.2.patched/should_be/tests/test_container_mixin.py	2020-05-18 09:00:51.372531064 +0200
@@ -7,31 +7,31 @@
         self.lst = [1, 2, 3]
 
     def test_should_include_iter(self):
-        err_msg = (r'[a-zA-Z0-9.]+ should have included \[.+?\]'
+        err_msg = (r'[a-zA-Z0-9.()]+ should have included \[.+?\]'
                    r', but did not have items .+')
-        self.assertRaisesRegexp(AssertionError, err_msg,
+        self.assertRaisesRegex(AssertionError, err_msg,
                                 self.lst.should_include, [4])
 
         self.lst.should_include([1, 2, 3])
 
     def test_should_include_item(self):
-        err_msg = (r'[a-zA-Z0-9.]+ should have included .+?'
+        err_msg = (r'[a-zA-Z0-9.()]+ should have included .+?'
                    r', but did not')
-        self.assertRaisesRegexp(AssertionError, err_msg,
+        self.assertRaisesRegex(AssertionError, err_msg,
                                 self.lst.should_include, 4)
 
         self.lst.should_include(3)
 
     def test_shouldnt_include_iter(self):
         err_msg = 'should not have included'
-        self.assertRaisesRegexp(AssertionError, err_msg,
+        self.assertRaisesRegex(AssertionError, err_msg,
                                 self.lst.shouldnt_include, [2, 3])
 
         self.lst.shouldnt_include([4, 5])
 
     def test_shouldnt_include_item(self):
         err_msg = 'should not have included'
-        self.assertRaisesRegexp(AssertionError, err_msg,
+        self.assertRaisesRegex(AssertionError, err_msg,
                                 self.lst.shouldnt_include, 3)
 
         self.lst.shouldnt_include(4)

M gnu/packages/python-xyz.scm => gnu/packages/python-xyz.scm +2 -1
@@ 18788,7 18788,8 @@ and cuts down boilerplate code when testing libraries for asyncio.")
       (uri (pypi-uri "shouldbe" version))
       (sha256
        (base32
         "16zbvjxf71dl4yfbgcr6idyim3mdrfvix1dv8b95p0s9z07372pj"))))
         "16zbvjxf71dl4yfbgcr6idyim3mdrfvix1dv8b95p0s9z07372pj"))
       (patches (search-patches "python-shouldbe-0.1.2-cpy3.8.patch"))))
    (build-system python-build-system)
    (propagated-inputs
      `(("python-forbiddenfruit" ,python-forbiddenfruit)))