In this copr repo, I have updated pytest to 7.0.1: https://copr.fedorainfracloud.org/coprs/churchyard/pytest-7/ Based on this PR: https://src.fedoraproject.org/rpms/pytest/pull-request/25 I'd like to update pytest to 7 in Fedora 37, but python-cheroot 8.6.0-5 fails to build. https://copr.fedorainfracloud.org/coprs/churchyard/pytest-7/package/python-cheroot/ _________________ ERROR at setup of test_ssl_adapters[builtin] _________________ cls = <class '_pytest.runner.CallInfo'> func = <function call_runtest_hook.<locals>.<lambda> at 0x7f1f68e53f40> when = 'setup' reraise = (<class '_pytest.outcomes.Exit'>, <class 'KeyboardInterrupt'>) @classmethod def from_call( cls, func: "Callable[[], TResult]", when: "Literal['collect', 'setup', 'call', 'teardown']", reraise: Optional[ Union[Type[BaseException], Tuple[Type[BaseException], ...]] ] = None, ) -> "CallInfo[TResult]": """Call func, wrapping the result in a CallInfo. :param func: The function to call. Called without arguments. :param when: The phase in which the function is called. :param reraise: Exception or exceptions that shall propagate if raised by the function, instead of being wrapped in the CallInfo. """ excinfo = None start = timing.time() precise_start = timing.perf_counter() try: > result: Optional[TResult] = func() cls = <class '_pytest.runner.CallInfo'> duration = 0.0003323739999814279 excinfo = <ExceptionInfo AssertionError('previous item was not torn down properly') tblen=6> func = <function call_runtest_hook.<locals>.<lambda> at 0x7f1f68e53f40> precise_start = 311.37547158 precise_stop = 311.375803954 reraise = (<class '_pytest.outcomes.Exit'>, <class 'KeyboardInterrupt'>) result = None start = 1646217241.6192257 stop = 1646217241.6195602 when = 'setup' /usr/lib/python3.10/site-packages/_pytest/runner.py:340: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.10/site-packages/_pytest/runner.py:261: in <lambda> lambda: ihook(item=item, **kwds), when=when, reraise=reraise ihook = <_HookCaller 'pytest_runtest_setup'> item = <Function test_ssl_adapters[builtin]> kwds = {} /usr/lib/python3.10/site-packages/pluggy/_hooks.py:265: in __call__ return self._hookexec(self.name, self.get_hookimpls(), kwargs, firstresult) argname = 'item' args = () firstresult = False kwargs = {'item': <Function test_ssl_adapters[builtin]>} self = <_HookCaller 'pytest_runtest_setup'> /usr/lib/python3.10/site-packages/pluggy/_manager.py:80: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) firstresult = False hook_name = 'pytest_runtest_setup' kwargs = {'item': <Function test_ssl_adapters[builtin]>} methods = [<HookImpl plugin_name='nose', plugin=<module '_pytest.nose' from '/usr/lib/python3.10/site-packages/_pytest/nose.py'>...=None>>, <HookImpl plugin_name='logging-plugin', plugin=<_pytest.logging.LoggingPlugin object at 0x7f1f6ad15120>>, ...] self = <_pytest.config.PytestPluginManager object at 0x7f1f6c28b160> /usr/lib/python3.10/site-packages/_pytest/runner.py:156: in pytest_runtest_setup item.session._setupstate.setup(item) item = <Function test_ssl_adapters[builtin]> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <_pytest.runner.SetupState object at 0x7f1f6ad11750> item = <Function test_ssl_adapters[builtin]> def setup(self, item: Item) -> None: """Setup objects along the collector chain to the item.""" needed_collectors = item.listchain() # If a collector fails its setup, fail its entire subtree of items. # The setup is not retried for each item - the same exception is used. for col, (finalizers, exc) in self.stack.items(): > assert col in needed_collectors, "previous item was not torn down properly" E AssertionError: previous item was not torn down properly col = <Module test_server.py> exc = None finalizers = [<bound method Node.teardown of <Module test_server.py>>] item = <Function test_ssl_adapters[builtin]> needed_collectors = [<Session cheroot-8.6.0 exitstatus=<ExitCode.OK: 0> testsfailed=0 testscollected=157>, <Package test>, <Module test_ssl.py>, <Function test_ssl_adapters[builtin]>] self = <_pytest.runner.SetupState object at 0x7f1f6ad11750> /usr/lib/python3.10/site-packages/_pytest/runner.py:489: AssertionError - generated xml file: /builddir/build/BUILD/cheroot-8.6.0/.test-results/pytest/test.xml - There are several packages affected by this update, so I'd very much appreciate it if you could fix this failure. Please, check if your upstream hasn't already fixed it and backport the fix if possible. Report this failure to your upstream otherwise. If you need specific help, let me know. Thanks!
Looks like others are hitting this issue too: https://github.com/pytest-dev/pytest/issues/9621 I have tested, we can just remove the invocation of pytest-forked and the tests pass ok. Maybe that's a short term fix until the issue is resolved upstream.
I've pushed up and built the fix discussed in this BZ.