Hide Forgot
python-testfixtures fails to build with Python 3.10.0a2. =================================== FAILURES =================================== _____________________ Tests.test_invalid_communicate_call ______________________ self = <testfixtures.tests.test_popen.Tests testMethod=test_invalid_communicate_call> def test_invalid_communicate_call(self): Popen = MockPopen() Popen.set_command('bar') process = Popen('bar') with ShouldRaise(TypeError( "communicate() got an unexpected keyword argument 'foo'" )): > process.communicate(foo='bar') testfixtures/tests/test_popen.py:501: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <testfixtures.popen.MockPopenInstance object at 0x7efdc57f1820> args = (), kw = {'foo': 'bar'} @wraps(func) def recorder(self, *args, **kw): self._record((func.__name__,), *args, **kw) > return func(self, *args, **kw) E TypeError: MockPopenInstance.communicate() got an unexpected keyword argument 'foo' testfixtures/popen.py:43: TypeError During handling of the above exception, another exception occurred: self = <testfixtures.tests.test_popen.Tests testMethod=test_invalid_communicate_call> def test_invalid_communicate_call(self): Popen = MockPopen() Popen.set_command('bar') process = Popen('bar') with ShouldRaise(TypeError( "communicate() got an unexpected keyword argument 'foo'" )): > process.communicate(foo='bar') E AssertionError: TypeError("communicate() got an unexpected keyword argument 'foo'") (expected) != TypeError("MockPopenInstance.communicate() got an unexpected keyword argument 'foo'") (raised) testfixtures/tests/test_popen.py:501: AssertionError ___________________________ Tests.test_invalid_kill ____________________________ self = <testfixtures.tests.test_popen.Tests testMethod=test_invalid_kill> def test_invalid_kill(self): Popen = MockPopen() Popen.set_command('bar') process = Popen('bar') if PY2: text = 'kill() takes exactly 1 argument (2 given)' else: text = 'kill() takes 1 positional argument but 2 were given' with ShouldRaise(TypeError(text)): > process.kill('moo') testfixtures/tests/test_popen.py:539: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <testfixtures.popen.MockPopenInstance object at 0x7efdc584d100> args = ('moo',), kw = {} @wraps(func) def recorder(self, *args, **kw): self._record((func.__name__,), *args, **kw) > return func(self, *args, **kw) E TypeError: MockPopenInstance.kill() takes 1 positional argument but 2 were given testfixtures/popen.py:43: TypeError During handling of the above exception, another exception occurred: self = <testfixtures.tests.test_popen.Tests testMethod=test_invalid_kill> def test_invalid_kill(self): Popen = MockPopen() Popen.set_command('bar') process = Popen('bar') if PY2: text = 'kill() takes exactly 1 argument (2 given)' else: text = 'kill() takes 1 positional argument but 2 were given' with ShouldRaise(TypeError(text)): > process.kill('moo') E AssertionError: TypeError('kill() takes 1 positional argument but 2 were given') (expected) != TypeError('MockPopenInstance.kill() takes 1 positional argument but 2 were given') (raised) testfixtures/tests/test_popen.py:539: AssertionError ________________________ Tests.test_invalid_parameters _________________________ self = <testfixtures.tests.test_popen.Tests testMethod=test_invalid_parameters> def test_invalid_parameters(self): Popen = MockPopen() with ShouldRaise(TypeError( "__init__() got an unexpected keyword argument 'foo'" )): > Popen(foo='bar') testfixtures/tests/test_popen.py:478: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <testfixtures.popen.MockPopen object at 0x7efdc56d98b0>, args = () kw = {'foo': 'bar'}, root_call = call.Popen(foo='bar') def __call__(self, *args, **kw): self.mock.Popen(*args, **kw) root_call = call.Popen(*args, **kw) self.all_calls.append(root_call) > return MockPopenInstance(self, root_call, *args, **kw) E TypeError: MockPopenInstance.__init__() got an unexpected keyword argument 'foo' testfixtures/popen.py:257: TypeError During handling of the above exception, another exception occurred: self = <testfixtures.tests.test_popen.Tests testMethod=test_invalid_parameters> def test_invalid_parameters(self): Popen = MockPopen() with ShouldRaise(TypeError( "__init__() got an unexpected keyword argument 'foo'" )): > Popen(foo='bar') E AssertionError: TypeError("__init__() got an unexpected keyword argument 'foo'") (expected) != TypeError("MockPopenInstance.__init__() got an unexpected keyword argument 'foo'") (raised) testfixtures/tests/test_popen.py:478: AssertionError ___________________________ Tests.test_invalid_poll ____________________________ self = <testfixtures.tests.test_popen.Tests testMethod=test_invalid_poll> def test_invalid_poll(self): Popen = MockPopen() Popen.set_command('bar') process = Popen('bar') if PY2: text = 'poll() takes exactly 1 argument (2 given)' else: text = 'poll() takes 1 positional argument but 2 were given' with ShouldRaise(TypeError(text)): > process.poll('moo') testfixtures/tests/test_popen.py:550: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <testfixtures.popen.MockPopenInstance object at 0x7efdc57aa2e0> args = ('moo',), kw = {} @wraps(func) def recorder(self, *args, **kw): self._record((func.__name__,), *args, **kw) > return func(self, *args, **kw) E TypeError: MockPopenInstance.poll() takes 1 positional argument but 2 were given testfixtures/popen.py:43: TypeError During handling of the above exception, another exception occurred: self = <testfixtures.tests.test_popen.Tests testMethod=test_invalid_poll> def test_invalid_poll(self): Popen = MockPopen() Popen.set_command('bar') process = Popen('bar') if PY2: text = 'poll() takes exactly 1 argument (2 given)' else: text = 'poll() takes 1 positional argument but 2 were given' with ShouldRaise(TypeError(text)): > process.poll('moo') E AssertionError: TypeError('poll() takes 1 positional argument but 2 were given') (expected) != TypeError('MockPopenInstance.poll() takes 1 positional argument but 2 were given') (raised) testfixtures/tests/test_popen.py:550: AssertionError ________________________ Tests.test_invalid_send_signal ________________________ self = <testfixtures.tests.test_popen.Tests testMethod=test_invalid_send_signal> def test_invalid_send_signal(self): Popen = MockPopen() Popen.set_command('bar') process = Popen('bar') with ShouldRaise(TypeError( "send_signal() got an unexpected keyword argument 'foo'" )): > process.send_signal(foo='bar') testfixtures/tests/test_popen.py:519: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <testfixtures.popen.MockPopenInstance object at 0x7efdc57abc10> args = (), kw = {'foo': 'bar'} @wraps(func) def recorder(self, *args, **kw): self._record((func.__name__,), *args, **kw) > return func(self, *args, **kw) E TypeError: MockPopenInstance.send_signal() got an unexpected keyword argument 'foo' testfixtures/popen.py:43: TypeError During handling of the above exception, another exception occurred: self = <testfixtures.tests.test_popen.Tests testMethod=test_invalid_send_signal> def test_invalid_send_signal(self): Popen = MockPopen() Popen.set_command('bar') process = Popen('bar') with ShouldRaise(TypeError( "send_signal() got an unexpected keyword argument 'foo'" )): > process.send_signal(foo='bar') E AssertionError: TypeError("send_signal() got an unexpected keyword argument 'foo'") (expected) != TypeError("MockPopenInstance.send_signal() got an unexpected keyword argument 'foo'") (raised) testfixtures/tests/test_popen.py:519: AssertionError _________________________ Tests.test_invalid_terminate _________________________ self = <testfixtures.tests.test_popen.Tests testMethod=test_invalid_terminate> def test_invalid_terminate(self): Popen = MockPopen() Popen.set_command('bar') process = Popen('bar') with ShouldRaise(TypeError( "terminate() got an unexpected keyword argument 'foo'" )): > process.terminate(foo='bar') testfixtures/tests/test_popen.py:528: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <testfixtures.popen.MockPopenInstance object at 0x7efdc56a49a0> args = (), kw = {'foo': 'bar'} @wraps(func) def recorder(self, *args, **kw): self._record((func.__name__,), *args, **kw) > return func(self, *args, **kw) E TypeError: MockPopenInstance.terminate() got an unexpected keyword argument 'foo' testfixtures/popen.py:43: TypeError During handling of the above exception, another exception occurred: self = <testfixtures.tests.test_popen.Tests testMethod=test_invalid_terminate> def test_invalid_terminate(self): Popen = MockPopen() Popen.set_command('bar') process = Popen('bar') with ShouldRaise(TypeError( "terminate() got an unexpected keyword argument 'foo'" )): > process.terminate(foo='bar') E AssertionError: TypeError("terminate() got an unexpected keyword argument 'foo'") (expected) != TypeError("MockPopenInstance.terminate() got an unexpected keyword argument 'foo'") (raised) testfixtures/tests/test_popen.py:528: AssertionError _________________________ Tests.test_invalid_wait_call _________________________ self = <testfixtures.tests.test_popen.Tests testMethod=test_invalid_wait_call> def test_invalid_wait_call(self): Popen = MockPopen() Popen.set_command('bar') process = Popen('bar') with ShouldRaise(TypeError( "wait() got an unexpected keyword argument 'foo'" )): > process.wait(foo='bar') testfixtures/tests/test_popen.py:510: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <testfixtures.popen.MockPopenInstance object at 0x7efdc56a8790> args = (), kw = {'foo': 'bar'} @wraps(func) def recorder(self, *args, **kw): self._record((func.__name__,), *args, **kw) > return func(self, *args, **kw) E TypeError: MockPopenInstance.wait() got an unexpected keyword argument 'foo' testfixtures/popen.py:43: TypeError During handling of the above exception, another exception occurred: self = <testfixtures.tests.test_popen.Tests testMethod=test_invalid_wait_call> def test_invalid_wait_call(self): Popen = MockPopen() Popen.set_command('bar') process = Popen('bar') with ShouldRaise(TypeError( "wait() got an unexpected keyword argument 'foo'" )): > process.wait(foo='bar') E AssertionError: TypeError("wait() got an unexpected keyword argument 'foo'") (expected) != TypeError("MockPopenInstance.wait() got an unexpected keyword argument 'foo'") (raised) testfixtures/tests/test_popen.py:510: AssertionError =============================== warnings summary =============================== /usr/lib/python3.10/site-packages/_pytest/config/__init__.py:1148 /usr/lib/python3.10/site-packages/_pytest/config/__init__.py:1148: PytestConfigWarning: Unknown config ini key: django_settings_module self._warn_or_fail_if_strict("Unknown config ini key: {}\n".format(key)) -- Docs: https://docs.pytest.org/en/stable/warnings.html =========================== short test summary info ============================ FAILED testfixtures/tests/test_popen.py::Tests::test_invalid_communicate_call FAILED testfixtures/tests/test_popen.py::Tests::test_invalid_kill - Assertion... FAILED testfixtures/tests/test_popen.py::Tests::test_invalid_parameters - Ass... FAILED testfixtures/tests/test_popen.py::Tests::test_invalid_poll - Assertion... FAILED testfixtures/tests/test_popen.py::Tests::test_invalid_send_signal - As... FAILED testfixtures/tests/test_popen.py::Tests::test_invalid_terminate - Asse... FAILED testfixtures/tests/test_popen.py::Tests::test_invalid_wait_call - Asse... ============ 7 failed, 721 passed, 3 deselected, 1 warning in 3.31s ============ error: Bad exit status from /var/tmp/rpm-tmp.SqpxEv (%check) Bad exit status from /var/tmp/rpm-tmp.SqpxEv (%check) For the build logs, see: https://copr-be.cloud.fedoraproject.org/results/@python/python3.10/fedora-rawhide-x86_64/01773441-python-testfixtures/ For all our attempts to build python-testfixtures with Python 3.10, see: https://copr.fedorainfracloud.org/coprs/g/python/python3.10/package/python-testfixtures/ Testing and mass rebuild of packages is happening in copr. You can follow these instructions to test locally in mock if your package builds with Python 3.10: https://copr.fedorainfracloud.org/coprs/g/python/python3.10/ Let us know here if you have any questions. Python 3.10 will be included in Fedora 35. To make that update smoother, we're building Fedora packages with early pre-releases of Python 3.10. A build failure prevents us from testing all dependent packages (transitive [Build]Requires), so if this package is required a lot, it's important for us to get it fixed soon. We'd appreciate help from the people who know this package best, but if you don't want to work on this now, let us know so we can try to work around it on our side.
Hello, is there any update on this? It blocks us from testing other packages (python-prawcore, python-praw) with Python 3.10. Thank you.
It might be easier to make python-prawcore use pytest's logging capture, and drop the dependency on testfixtures.
This bug appears to have been reported against 'rawhide' during the Fedora 34 development cycle. Changing version to 34.