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)