diff options
author | Louis Sautier <sbraz@gentoo.org> | 2021-08-21 20:35:57 +0200 |
---|---|---|
committer | Louis Sautier <sbraz@gentoo.org> | 2021-08-21 20:35:59 +0200 |
commit | 9a16f9f89174086c6a8b9aae84436bb5ee31c4ea (patch) | |
tree | 641a4393f469872288817d2d99e9da06dc953f34 /dev-python/testfixtures | |
parent | dev-python/geventhttpclient: add 1.5.0 (diff) | |
download | gentoo-9a16f9f89174086c6a8b9aae84436bb5ee31c4ea.tar.gz gentoo-9a16f9f89174086c6a8b9aae84436bb5ee31c4ea.tar.bz2 gentoo-9a16f9f89174086c6a8b9aae84436bb5ee31c4ea.zip |
dev-python/testfixtures: enable py3.10
Signed-off-by: Louis Sautier <sbraz@gentoo.org>
Diffstat (limited to 'dev-python/testfixtures')
-rw-r--r-- | dev-python/testfixtures/files/testfixtures-6.18.1-py3.10.patch | 172 | ||||
-rw-r--r-- | dev-python/testfixtures/testfixtures-6.18.1.ebuild | 7 |
2 files changed, 178 insertions, 1 deletions
diff --git a/dev-python/testfixtures/files/testfixtures-6.18.1-py3.10.patch b/dev-python/testfixtures/files/testfixtures-6.18.1-py3.10.patch new file mode 100644 index 000000000000..cd1ecbd8133d --- /dev/null +++ b/dev-python/testfixtures/files/testfixtures-6.18.1-py3.10.patch @@ -0,0 +1,172 @@ +From 8fb2122eea0f1d0de1ccca7a3a0f5426bc6d4964 Mon Sep 17 00:00:00 2001 +From: Louis Sautier <sautier.louis@gmail.com> +Date: Sat, 21 Aug 2021 03:00:51 +0200 +Subject: [PATCH] tests: fix with Python 3.10 (changed exception messages) + +--- + testfixtures/compat.py | 1 + + testfixtures/tests/test_popen.py | 41 ++++++++++++++++++------------ + testfixtures/tests/test_replace.py | 24 ++++++++++------- + 3 files changed, 41 insertions(+), 25 deletions(-) + +diff --git a/testfixtures/compat.py b/testfixtures/compat.py +index 1042d27..ca00f32 100644 +--- a/testfixtures/compat.py ++++ b/testfixtures/compat.py +@@ -5,6 +5,7 @@ + + PY_36_PLUS = PY_VERSION >= (3, 6) + PY_37_PLUS = PY_VERSION >= (3, 7) ++PY_310_PLUS = PY_VERSION >= (3, 10) + + + if PY_VERSION > (3, 0): +diff --git a/testfixtures/tests/test_popen.py b/testfixtures/tests/test_popen.py +index aa211da..4ec3186 100644 +--- a/testfixtures/tests/test_popen.py ++++ b/testfixtures/tests/test_popen.py +@@ -6,7 +6,7 @@ + from testfixtures import ShouldRaise, compare, Replacer + + from testfixtures.popen import MockPopen, PopenBehaviour +-from testfixtures.compat import BytesLiteral, PY2 ++from testfixtures.compat import BytesLiteral, PY2, PY_310_PLUS + + import signal + +@@ -471,10 +471,11 @@ def test_default_command_max_args(self): + ], Popen.mock.method_calls) + + def test_invalid_parameters(self): ++ message = "__init__() got an unexpected keyword argument 'foo'" ++ if PY_310_PLUS: ++ message = "MockPopenInstance." + message + Popen = MockPopen() +- with ShouldRaise(TypeError( +- "__init__() got an unexpected keyword argument 'foo'" +- )): ++ with ShouldRaise(TypeError(message)): + Popen(foo='bar') + + def test_invalid_method_or_attr(self): +@@ -492,39 +493,43 @@ def test_invalid_attribute(self): + process.foo + + def test_invalid_communicate_call(self): ++ message = "communicate() got an unexpected keyword argument 'foo'" ++ if PY_310_PLUS: ++ message = "MockPopenInstance." + message + Popen = MockPopen() + Popen.set_command('bar') + process = Popen('bar') +- with ShouldRaise(TypeError( +- "communicate() got an unexpected keyword argument 'foo'" +- )): ++ with ShouldRaise(TypeError(message)): + process.communicate(foo='bar') + + def test_invalid_wait_call(self): ++ message = "wait() got an unexpected keyword argument 'foo'" ++ if PY_310_PLUS: ++ message = "MockPopenInstance." + message + Popen = MockPopen() + Popen.set_command('bar') + process = Popen('bar') +- with ShouldRaise(TypeError( +- "wait() got an unexpected keyword argument 'foo'" +- )): ++ with ShouldRaise(TypeError(message)): + process.wait(foo='bar') + + def test_invalid_send_signal(self): ++ message = "send_signal() got an unexpected keyword argument 'foo'" ++ if PY_310_PLUS: ++ message = "MockPopenInstance." + message + Popen = MockPopen() + Popen.set_command('bar') + process = Popen('bar') +- with ShouldRaise(TypeError( +- "send_signal() got an unexpected keyword argument 'foo'" +- )): ++ with ShouldRaise(TypeError(message)): + process.send_signal(foo='bar') + + def test_invalid_terminate(self): ++ message = "terminate() got an unexpected keyword argument 'foo'" ++ if PY_310_PLUS: ++ message = "MockPopenInstance." + message + Popen = MockPopen() + Popen.set_command('bar') + process = Popen('bar') +- with ShouldRaise(TypeError( +- "terminate() got an unexpected keyword argument 'foo'" +- )): ++ with ShouldRaise(TypeError(message)): + process.terminate(foo='bar') + + def test_invalid_kill(self): +@@ -535,6 +540,8 @@ def test_invalid_kill(self): + text = 'kill() takes exactly 1 argument (2 given)' + else: + text = 'kill() takes 1 positional argument but 2 were given' ++ if PY_310_PLUS: ++ text = "MockPopenInstance." + text + with ShouldRaise(TypeError(text)): + process.kill('moo') + +@@ -546,6 +553,8 @@ def test_invalid_poll(self): + text = 'poll() takes exactly 1 argument (2 given)' + else: + text = 'poll() takes 1 positional argument but 2 were given' ++ if PY_310_PLUS: ++ text = "MockPopenInstance." + text + with ShouldRaise(TypeError(text)): + process.poll('moo') + +diff --git a/testfixtures/tests/test_replace.py b/testfixtures/tests/test_replace.py +index 5a77e23..d3544a8 100644 +--- a/testfixtures/tests/test_replace.py ++++ b/testfixtures/tests/test_replace.py +@@ -13,7 +13,7 @@ + + from testfixtures.tests import sample1 + from testfixtures.tests import sample2 +-from ..compat import PY3 ++from ..compat import PY3, PY_310_PLUS + + from warnings import catch_warnings + +@@ -259,19 +259,25 @@ def test_something(obj): + self.failIf(hasattr(sample1, 'foo')) + + def test_replace_delattr_cant_remove(self): ++ if PY_310_PLUS: ++ message = "cannot set 'today' attribute of " \ ++ "immutable type 'datetime.datetime'" ++ else: ++ message = "can't set attributes of " \ ++ "built-in/extension type 'datetime.datetime'" + with Replacer() as r: +- with ShouldRaise(TypeError( +- "can't set attributes of " +- "built-in/extension type 'datetime.datetime'" +- )): ++ with ShouldRaise(TypeError(message)): + r.replace('datetime.datetime.today', not_there) + + def test_replace_delattr_cant_remove_not_strict(self): ++ if PY_310_PLUS: ++ message = "cannot set 'today' attribute of " \ ++ "immutable type 'datetime.datetime'" ++ else: ++ message = "can't set attributes of " \ ++ "built-in/extension type 'datetime.datetime'" + with Replacer() as r: +- with ShouldRaise(TypeError( +- "can't set attributes of " +- "built-in/extension type 'datetime.datetime'" +- )): ++ with ShouldRaise(TypeError(message)): + r.replace('datetime.datetime.today', not_there, strict=False) + + def test_replace_dict_remove_key(self): diff --git a/dev-python/testfixtures/testfixtures-6.18.1.ebuild b/dev-python/testfixtures/testfixtures-6.18.1.ebuild index a0872c1838ea..09d57b662b87 100644 --- a/dev-python/testfixtures/testfixtures-6.18.1.ebuild +++ b/dev-python/testfixtures/testfixtures-6.18.1.ebuild @@ -3,7 +3,7 @@ EAPI=8 -PYTHON_COMPAT=( python3_{8..9} ) +PYTHON_COMPAT=( python3_{8..10} ) inherit distutils-r1 DESCRIPTION="A collection of helpers and mock objects for unit tests and doc tests" @@ -27,6 +27,11 @@ BDEPEND=" distutils_enable_sphinx docs distutils_enable_tests pytest +PATCHES=( + # https://github.com/Simplistix/testfixtures/commit/8fb2122eea0f1d0de1ccca7a3a0f5426bc6d4964 + "${FILESDIR}/${P}-py3.10.patch" +) + python_prepare_all() { # kill weird way of declaring build deps sed -e '/build=/d' -i setup.py || die |