Failing test suite with pytest 7 due to deprecation warnings #6663
Closed
Description
Describe the bug
Pytest 7 deprecates the usage of pytest.warns(None). See pytest-dev/pytest#9404 for a discussion about it.
The test suite erroring out on any warning fails with pytest 7.1.1
To Reproduce
- Install a recent pytest (7.1.1)
- Run pytest on the aiohttp source
Expected behavior
Clean pass
Logs/tracebacks
[ 106s] =================================== FAILURES ===================================
[ 106s] ___________________________ test_async_with_session ____________________________
[ 106s]
[ 106s] async def test_async_with_session() -> None:
[ 106s] > with pytest.warns(None) as cm:
[ 106s]
[ 106s]
[ 106s] tests/test_client_functional.py:2431:
[ 106s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
[ 106s]
[ 106s] self = WarningsChecker(record=True), expected_warning = None, match_expr = None
[ 106s]
[ 106s] def __init__(
[ 106s] self,
[ 106s] expected_warning: Optional[
[ 106s] Union[Type[Warning], Tuple[Type[Warning], ...]]
[ 106s] ] = Warning,
[ 106s] match_expr: Optional[Union[str, Pattern[str]]] = None,
[ 106s] *,
[ 106s] _ispytest: bool = False,
[ 106s] ) -> None:
[ 106s] check_ispytest(_ispytest)
[ 106s] super().__init__(_ispytest=True)
[ 106s]
[ 106s] msg = "exceptions must be derived from Warning, not %s"
[ 106s] if expected_warning is None:
[ 106s] > warnings.warn(WARNS_NONE_ARG, stacklevel=4)
[ 106s] E pytest.PytestRemovedIn8Warning: Passing None has been deprecated.
[ 106s] E See https://docs.pytest.org/en/latest/how-to/capture-warnings.html#additional-use-cases-of-warnings-in-tests for alternatives in common use cases.
[ 106s]
[ 106s] __class__ = <class '_pytest.recwarn.WarningsChecker'>
[ 106s] _ispytest = True
[ 106s] expected_warning = None
[ 106s] match_expr = None
[ 106s] msg = 'exceptions must be derived from Warning, not %s'
[ 106s] self = WarningsChecker(record=True)
[ 106s]
[ 106s] /usr/lib/python3.9/site-packages/_pytest/recwarn.py:246: PytestRemovedIn8Warning
[ 106s] _________________________ test_session_close_awaitable _________________________
[ 106s]
[ 106s] async def test_session_close_awaitable() -> None:
[ 106s] session = aiohttp.ClientSession()
[ 106s] > with pytest.warns(None) as cm:
[ 106s]
[ 106s] session = <aiohttp.client.ClientSession object at 0x7f74353d5400>
[ 106s]
[ 106s] tests/test_client_functional.py:2441:
[ 106s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
[ 106s] /usr/lib/python3.9/site-packages/_pytest/recwarn.py:246: in __init__
[ 106s] warnings.warn(WARNS_NONE_ARG, stacklevel=4)
[ 106s] __class__ = <class '_pytest.recwarn.WarningsChecker'>
[ 106s] _ispytest = True
[ 106s] expected_warning = None
[ 106s] match_expr = None
[ 106s] msg = 'exceptions must be derived from Warning, not %s'
[ 106s] self = WarningsChecker(record=True)
[ 106s] /usr/lib/python3.9/site-packages/_pytest/runner.py:338: in from_call
[ 106s] result: Optional[TResult] = func()
[ 106s] cls = <class '_pytest.runner.CallInfo'>
[ 106s] duration = 0.0002979149999191577
[ 106s] excinfo = <ExceptionInfo PytestRemovedIn8Warning('Passing None has been deprecated.\nSee https://docs.pytest.org/en/latest/how-to/capture-warnings.html#additional-use-cases-of-warnings-in-tests for alternatives in common use cases.') tblen=2>
[ 106s] func = <function call_runtest_hook.<locals>.<lambda> at 0x7f74333c05e0>
[ 106s] precise_start = 880.992611685
[ 106s] precise_stop = 880.9929096
[ 106s] reraise = (<class '_pytest.outcomes.Exit'>, <class 'KeyboardInterrupt'>)
[ 106s] result = None
[ 106s] start = 1648463406.1733868
[ 106s] stop = 1648463406.1736853
[ 106s] when = 'call'
[ 106s] /usr/lib/python3.9/site-packages/_pytest/runner.py:259: in <lambda>
[ 106s] lambda: ihook(item=item, **kwds), when=when, reraise=reraise
[ 106s] ihook = <_HookCaller 'pytest_runtest_call'>
[ 106s] item = <Function test_async_with_session>
[ 106s] kwds = {}
[ 106s] /usr/lib/python3.9/site-packages/pluggy/_hooks.py:265: in __call__
[ 106s] return self._hookexec(self.name, self.get_hookimpls(), kwargs, firstresult)
[ 106s] argname = 'item'
[ 106s] args = ()
[ 106s] firstresult = False
[ 106s] kwargs = {'item': <Function test_async_with_session>}
[ 106s] self = <_HookCaller 'pytest_runtest_call'>
[ 106s] /usr/lib/python3.9/site-packages/pluggy/_manager.py:80: in _hookexec
[ 106s] return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
[ 106s] firstresult = False
[ 106s] hook_name = 'pytest_runtest_call'
[ 106s] kwargs = {'item': <Function test_async_with_session>}
[ 106s] methods = [<HookImpl plugin_name='runner', plugin=<module '_pytest.runner' from '/usr/lib/python3.9/site-packages/_pytest/runner.py'>>,
[ 106s] <HookImpl plugin_name='skipping', plugin=<module '_pytest.skipping' from '/usr/lib/python3.9/site-packages/_pytest/skipping.py'>>,
[ 106s] <HookImpl plugin_name='timeout', plugin=<module 'pytest_timeout' from '/usr/lib/python3.9/site-packages/pytest_timeout.py'>>,
[ 106s] <HookImpl plugin_name='capturemanager', plugin=<CaptureManager _method='fd' _global_capturing=<MultiCapture out=<FDCapture 1 oldfd=5 _state='suspended' tmpfile=<_io.TextIOWrapper name="<_io.FileIO name=6 mode='rb+' closefd=True>" mode='r+' encoding='utf-8'>> err=<FDCapture 2 oldfd=7 _state='suspended' tmpfile=<_io.TextIOWrapper name="<_io.FileIO name=8 mode='rb+' closefd=True>" mode='r+' encoding='utf-8'>> in_=<FDCapture 0 oldfd=3 _state='started' tmpfile=<_io.TextIOWrapper name='/dev/null' mode='r' encoding='UTF-8'>> _state='suspended' _in_suspended=False> _capture_fixture=None>>,
[ 106s] <HookImpl plugin_name='logging-plugin', plugin=<_pytest.logging.LoggingPlugin object at 0x7f7435a2d910>>,
[ 106s] <HookImpl plugin_name='unraisableexception', plugin=<module '_pytest.unraisableexception' from '/usr/lib/python3.9/site-packages/_pytest/unraisableexception.py'>>,
[ 106s] <HookImpl plugin_name='threadexception', plugin=<module '_pytest.threadexception' from '/usr/lib/python3.9/site-packages/_pytest/threadexception.py'>>]
[ 106s] self = <_pytest.config.PytestPluginManager object at 0x7f7437ca8f70>
[ 106s] /usr/lib/python3.9/site-packages/_pytest/runner.py:174: in pytest_runtest_call
[ 106s] raise e
[ 106s] item = <Function test_async_with_session>
[ 106s] /usr/lib/python3.9/site-packages/_pytest/runner.py:166: in pytest_runtest_call
[ 106s] item.runtest()
[ 106s] item = <Function test_async_with_session>
[ 106s] /usr/lib/python3.9/site-packages/_pytest/python.py:1761: in runtest
[ 106s] self.ihook.pytest_pyfunc_call(pyfuncitem=self)
[ 106s] self = <Function test_async_with_session>
[ 106s] /usr/lib/python3.9/site-packages/pluggy/_hooks.py:265: in __call__
[ 106s] return self._hookexec(self.name, self.get_hookimpls(), kwargs, firstresult)
[ 106s] argname = 'pyfuncitem'
[ 106s] args = ()
[ 106s] firstresult = True
[ 106s] kwargs = {'pyfuncitem': <Function test_async_with_session>}
[ 106s] self = <_HookCaller 'pytest_pyfunc_call'>
[ 106s] /usr/lib/python3.9/site-packages/pluggy/_manager.py:80: in _hookexec
[ 106s] return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
[ 106s] firstresult = True
[ 106s] hook_name = 'pytest_pyfunc_call'
[ 106s] kwargs = {'pyfuncitem': <Function test_async_with_session>}
[ 106s] methods = [<HookImpl plugin_name='python', plugin=<module '_pytest.python' from '/usr/lib/python3.9/site-packages/_pytest/python.py'>>,
[ 106s] <HookImpl plugin_name='aiohttp.pytest_plugin', plugin=<module 'aiohttp.pytest_plugin' from '/home/abuild/rpmbuild/BUILDROOT/python-aiohttp-3.8.1-0.x86_64/usr/lib64/python3.9/site-packages/aiohttp/pytest_plugin.py'>>]
[ 106s] self = <_pytest.config.PytestPluginManager object at 0x7f7437ca8f70>
[ 106s] ../../BUILDROOT/python-aiohttp-3.8.1-0.x86_64/usr/lib64/python3.9/site-packages/aiohttp/pytest_plugin.py:186: in pytest_pyfunc_call
[ 106s] _loop.run_until_complete(pyfuncitem.obj(**testargs))
[ 106s] _loop = <_UnixSelectorEventLoop running=False closed=False debug=False>
[ 106s] existing_loop = None
[ 106s] fast = False
[ 106s] pyfuncitem = <Function test_async_with_session>
[ 106s] testargs = {}
[ 106s] /usr/lib64/python3.9/asyncio/base_events.py:642: in run_until_complete
[ 106s] return future.result()
[ 106s] future = <Task finished name='Task-1096' coro=<test_async_with_session() done, defined at /home/abuild/rpmbuild/BUILD/aiohttp-3.8.1/tests/test_client_functional.py:2430> exception=PytestRemovedIn8Warning('Passing None has been deprecated.\nSee https://docs.pytest.org/en/latest/how-to/capture-warnings.html#additional-use-cases-of-warnings-in-tests for alternatives in common use cases.')>
[ 106s] new_task = True
[ 106s] self = <_UnixSelectorEventLoop running=False closed=False debug=False>
[ 106s] tests/test_client_functional.py:2431: in test_async_with_session
[ 106s] with pytest.warns(None) as cm:
[ 106s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
[ 106s]
[ 106s] self = WarningsChecker(record=True), expected_warning = None, match_expr = None
[ 106s]
[ 106s] def __init__(
[ 106s] self,
[ 106s] expected_warning: Optional[
[ 106s] Union[Type[Warning], Tuple[Type[Warning], ...]]
[ 106s] ] = Warning,
[ 106s] match_expr: Optional[Union[str, Pattern[str]]] = None,
[ 106s] *,
[ 106s] _ispytest: bool = False,
[ 106s] ) -> None:
[ 106s] check_ispytest(_ispytest)
[ 106s] super().__init__(_ispytest=True)
[ 106s]
[ 106s] msg = "exceptions must be derived from Warning, not %s"
[ 106s] if expected_warning is None:
[ 106s] > warnings.warn(WARNS_NONE_ARG, stacklevel=4)
[ 106s] E pytest.PytestRemovedIn8Warning: Passing None has been deprecated.
[ 106s] E See https://docs.pytest.org/en/latest/how-to/capture-warnings.html#additional-use-cases-of-warnings-in-tests for alternatives in common use cases.
[ 106s]
[ 106s] __class__ = <class '_pytest.recwarn.WarningsChecker'>
[ 106s] _ispytest = True
[ 106s] expected_warning = None
[ 106s] match_expr = None
[ 106s] msg = 'exceptions must be derived from Warning, not %s'
[ 106s] self = WarningsChecker(record=True)
[ 106s]
[ 106s] /usr/lib/python3.9/site-packages/_pytest/recwarn.py:246: PytestRemovedIn8Warning
[ 106s] _________________ test_close_run_until_complete_not_deprecated _________________
[ 106s]
[ 106s] async def test_close_run_until_complete_not_deprecated() -> None:
[ 106s] session = aiohttp.ClientSession()
[ 106s]
[ 106s] > with pytest.warns(None) as cm:
[ 106s]
[ 106s] session = <aiohttp.client.ClientSession object at 0x7f74330d5100>
[ 106s]
[ 106s] tests/test_client_functional.py:2451:
[ 106s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
[ 106s] /usr/lib/python3.9/site-packages/_pytest/recwarn.py:246: in __init__
[ 106s] warnings.warn(WARNS_NONE_ARG, stacklevel=4)
[ 106s] __class__ = <class '_pytest.recwarn.WarningsChecker'>
[ 106s] _ispytest = True
[ 106s] expected_warning = None
[ 106s] match_expr = None
[ 106s] msg = 'exceptions must be derived from Warning, not %s'
[ 106s] self = WarningsChecker(record=True)
[ 106s] /usr/lib/python3.9/site-packages/_pytest/runner.py:338: in from_call
[ 106s] result: Optional[TResult] = func()
[ 106s] cls = <class '_pytest.runner.CallInfo'>
[ 106s] duration = 0.00033854299999802606
[ 106s] excinfo = <ExceptionInfo PytestRemovedIn8Warning('Passing None has been deprecated.\nSee https://docs.pytest.org/en/latest/how-to/capture-warnings.html#additional-use-cases-of-warnings-in-tests for alternatives in common use cases.') tblen=15>
[ 106s] func = <function call_runtest_hook.<locals>.<lambda> at 0x7f7434aa0dc0>
[ 106s] precise_start = 881.032735979
[ 106s] precise_stop = 881.033074522
[ 106s] reraise = (<class '_pytest.outcomes.Exit'>, <class 'KeyboardInterrupt'>)
[ 106s] result = None
[ 106s] start = 1648463406.2135112
[ 106s] stop = 1648463406.21385
[ 106s] when = 'call'
[ 106s] /usr/lib/python3.9/site-packages/_pytest/runner.py:259: in <lambda>
[ 106s] lambda: ihook(item=item, **kwds), when=when, reraise=reraise
[ 106s] ihook = <_HookCaller 'pytest_runtest_call'>
[ 106s] item = <Function test_session_close_awaitable>
[ 106s] kwds = {}
[ 106s] /usr/lib/python3.9/site-packages/pluggy/_hooks.py:265: in __call__
[ 106s] return self._hookexec(self.name, self.get_hookimpls(), kwargs, firstresult)
[ 106s] argname = 'item'
[ 106s] args = ()
[ 106s] firstresult = False
[ 106s] kwargs = {'item': <Function test_session_close_awaitable>}
[ 106s] self = <_HookCaller 'pytest_runtest_call'>
[ 106s] /usr/lib/python3.9/site-packages/pluggy/_manager.py:80: in _hookexec
[ 106s] return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
[ 106s] firstresult = False
[ 106s] hook_name = 'pytest_runtest_call'
[ 106s] kwargs = {'item': <Function test_session_close_awaitable>}
[ 106s] methods = [<HookImpl plugin_name='runner', plugin=<module '_pytest.runner' from '/usr/lib/python3.9/site-packages/_pytest/runner.py'>>,
[ 106s] <HookImpl plugin_name='skipping', plugin=<module '_pytest.skipping' from '/usr/lib/python3.9/site-packages/_pytest/skipping.py'>>,
[ 106s] <HookImpl plugin_name='timeout', plugin=<module 'pytest_timeout' from '/usr/lib/python3.9/site-packages/pytest_timeout.py'>>,
[ 106s] <HookImpl plugin_name='capturemanager', plugin=<CaptureManager _method='fd' _global_capturing=<MultiCapture out=<FDCapture 1 oldfd=5 _state='suspended' tmpfile=<_io.TextIOWrapper name="<_io.FileIO name=6 mode='rb+' closefd=True>" mode='r+' encoding='utf-8'>> err=<FDCapture 2 oldfd=7 _state='suspended' tmpfile=<_io.TextIOWrapper name="<_io.FileIO name=8 mode='rb+' closefd=True>" mode='r+' encoding='utf-8'>> in_=<FDCapture 0 oldfd=3 _state='started' tmpfile=<_io.TextIOWrapper name='/dev/null' mode='r' encoding='UTF-8'>> _state='suspended' _in_suspended=False> _capture_fixture=None>>,
[ 106s] <HookImpl plugin_name='logging-plugin', plugin=<_pytest.logging.LoggingPlugin object at 0x7f7435a2d910>>,
[ 106s] <HookImpl plugin_name='unraisableexception', plugin=<module '_pytest.unraisableexception' from '/usr/lib/python3.9/site-packages/_pytest/unraisableexception.py'>>,
[ 106s] <HookImpl plugin_name='threadexception', plugin=<module '_pytest.threadexception' from '/usr/lib/python3.9/site-packages/_pytest/threadexception.py'>>]
[ 106s] self = <_pytest.config.PytestPluginManager object at 0x7f7437ca8f70>
[ 106s] /usr/lib/python3.9/site-packages/_pytest/runner.py:174: in pytest_runtest_call
[ 106s] raise e
[ 106s] item = <Function test_session_close_awaitable>
[ 106s] /usr/lib/python3.9/site-packages/_pytest/runner.py:166: in pytest_runtest_call
[ 106s] item.runtest()
[ 106s] item = <Function test_session_close_awaitable>
[ 106s] /usr/lib/python3.9/site-packages/_pytest/python.py:1761: in runtest
[ 106s] self.ihook.pytest_pyfunc_call(pyfuncitem=self)
[ 106s] self = <Function test_session_close_awaitable>
[ 106s] /usr/lib/python3.9/site-packages/pluggy/_hooks.py:265: in __call__
[ 106s] return self._hookexec(self.name, self.get_hookimpls(), kwargs, firstresult)
[ 106s] argname = 'pyfuncitem'
[ 106s] args = ()
[ 106s] firstresult = True
[ 106s] kwargs = {'pyfuncitem': <Function test_session_close_awaitable>}
[ 106s] self = <_HookCaller 'pytest_pyfunc_call'>
[ 106s] /usr/lib/python3.9/site-packages/pluggy/_manager.py:80: in _hookexec
[ 106s] return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
[ 106s] firstresult = True
[ 106s] hook_name = 'pytest_pyfunc_call'
[ 106s] kwargs = {'pyfuncitem': <Function test_session_close_awaitable>}
[ 106s] methods = [<HookImpl plugin_name='python', plugin=<module '_pytest.python' from '/usr/lib/python3.9/site-packages/_pytest/python.py'>>,
[ 106s] <HookImpl plugin_name='aiohttp.pytest_plugin', plugin=<module 'aiohttp.pytest_plugin' from '/home/abuild/rpmbuild/BUILDROOT/python-aiohttp-3.8.1-0.x86_64/usr/lib64/python3.9/site-packages/aiohttp/pytest_plugin.py'>>]
[ 106s] self = <_pytest.config.PytestPluginManager object at 0x7f7437ca8f70>
[ 106s] ../../BUILDROOT/python-aiohttp-3.8.1-0.x86_64/usr/lib64/python3.9/site-packages/aiohttp/pytest_plugin.py:186: in pytest_pyfunc_call
[ 106s] _loop.run_until_complete(pyfuncitem.obj(**testargs))
[ 106s] _loop = <_UnixSelectorEventLoop running=False closed=False debug=False>
[ 106s] existing_loop = None
[ 106s] fast = False
[ 106s] pyfuncitem = <Function test_session_close_awaitable>
[ 106s] testargs = {}
[ 106s] /usr/lib64/python3.9/asyncio/base_events.py:642: in run_until_complete
[ 106s] return future.result()
[ 106s] future = <Task finished name='Task-1097' coro=<test_session_close_awaitable() done, defined at /home/abuild/rpmbuild/BUILD/aiohttp-3.8.1/tests/test_client_functional.py:2439> exception=PytestRemovedIn8Warning('Passing None has been deprecated.\nSee https://docs.pytest.org/en/latest/how-to/capture-warnings.html#additional-use-cases-of-warnings-in-tests for alternatives in common use cases.')>
[ 106s] new_task = True
[ 106s] self = <_UnixSelectorEventLoop running=False closed=False debug=False>
[ 106s] tests/test_client_functional.py:2441: in test_session_close_awaitable
[ 106s] with pytest.warns(None) as cm:
[ 106s] session = <aiohttp.client.ClientSession object at 0x7f74353d5400>
[ 106s] /usr/lib/python3.9/site-packages/_pytest/recwarn.py:246: in __init__
[ 106s] warnings.warn(WARNS_NONE_ARG, stacklevel=4)
[ 106s] __class__ = <class '_pytest.recwarn.WarningsChecker'>
[ 106s] _ispytest = True
[ 106s] expected_warning = None
[ 106s] match_expr = None
[ 106s] msg = 'exceptions must be derived from Warning, not %s'
[ 106s] self = WarningsChecker(record=True)
[ 106s] /usr/lib/python3.9/site-packages/_pytest/runner.py:338: in from_call
[ 106s] result: Optional[TResult] = func()
[ 106s] cls = <class '_pytest.runner.CallInfo'>
[ 106s] duration = 0.0002979149999191577
[ 106s] excinfo = <ExceptionInfo PytestRemovedIn8Warning('Passing None has been deprecated.\nSee https://docs.pytest.org/en/latest/how-to/capture-warnings.html#additional-use-cases-of-warnings-in-tests for alternatives in common use cases.') tblen=2>
[ 106s] func = <function call_runtest_hook.<locals>.<lambda> at 0x7f74333c05e0>
[ 106s] precise_start = 880.992611685
[ 106s] precise_stop = 880.9929096
[ 106s] reraise = (<class '_pytest.outcomes.Exit'>, <class 'KeyboardInterrupt'>)
[ 106s] result = None
[ 106s] start = 1648463406.1733868
[ 106s] stop = 1648463406.1736853
[ 106s] when = 'call'
[ 106s] /usr/lib/python3.9/site-packages/_pytest/runner.py:259: in <lambda>
[ 106s] lambda: ihook(item=item, **kwds), when=when, reraise=reraise
[ 106s] ihook = <_HookCaller 'pytest_runtest_call'>
[ 106s] item = <Function test_async_with_session>
[ 106s] kwds = {}
[ 106s] /usr/lib/python3.9/site-packages/pluggy/_hooks.py:265: in __call__
[ 106s] return self._hookexec(self.name, self.get_hookimpls(), kwargs, firstresult)
[ 106s] argname = 'item'
[ 106s] args = ()
[ 106s] firstresult = False
[ 106s] kwargs = {'item': <Function test_async_with_session>}
[ 106s] self = <_HookCaller 'pytest_runtest_call'>
[ 106s] /usr/lib/python3.9/site-packages/pluggy/_manager.py:80: in _hookexec
[ 106s] return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
[ 106s] firstresult = False
[ 106s] hook_name = 'pytest_runtest_call'
[ 106s] kwargs = {'item': <Function test_async_with_session>}
[ 106s] methods = [<HookImpl plugin_name='runner', plugin=<module '_pytest.runner' from '/usr/lib/python3.9/site-packages/_pytest/runner.py'>>,
[ 106s] <HookImpl plugin_name='skipping', plugin=<module '_pytest.skipping' from '/usr/lib/python3.9/site-packages/_pytest/skipping.py'>>,
[ 106s] <HookImpl plugin_name='timeout', plugin=<module 'pytest_timeout' from '/usr/lib/python3.9/site-packages/pytest_timeout.py'>>,
[ 106s] <HookImpl plugin_name='capturemanager', plugin=<CaptureManager _method='fd' _global_capturing=<MultiCapture out=<FDCapture 1 oldfd=5 _state='suspended' tmpfile=<_io.TextIOWrapper name="<_io.FileIO name=6 mode='rb+' closefd=True>" mode='r+' encoding='utf-8'>> err=<FDCapture 2 oldfd=7 _state='suspended' tmpfile=<_io.TextIOWrapper name="<_io.FileIO name=8 mode='rb+' closefd=True>" mode='r+' encoding='utf-8'>> in_=<FDCapture 0 oldfd=3 _state='started' tmpfile=<_io.TextIOWrapper name='/dev/null' mode='r' encoding='UTF-8'>> _state='suspended' _in_suspended=False> _capture_fixture=None>>,
[ 106s] <HookImpl plugin_name='logging-plugin', plugin=<_pytest.logging.LoggingPlugin object at 0x7f7435a2d910>>,
[ 106s] <HookImpl plugin_name='unraisableexception', plugin=<module '_pytest.unraisableexception' from '/usr/lib/python3.9/site-packages/_pytest/unraisableexception.py'>>,
[ 106s] <HookImpl plugin_name='threadexception', plugin=<module '_pytest.threadexception' from '/usr/lib/python3.9/site-packages/_pytest/threadexception.py'>>]
[ 106s] self = <_pytest.config.PytestPluginManager object at 0x7f7437ca8f70>
[ 106s] /usr/lib/python3.9/site-packages/_pytest/runner.py:174: in pytest_runtest_call
[ 106s] raise e
[ 106s] item = <Function test_async_with_session>
[ 106s] /usr/lib/python3.9/site-packages/_pytest/runner.py:166: in pytest_runtest_call
[ 106s] item.runtest()
[ 106s] item = <Function test_async_with_session>
[ 106s] /usr/lib/python3.9/site-packages/_pytest/python.py:1761: in runtest
[ 106s] self.ihook.pytest_pyfunc_call(pyfuncitem=self)
[ 106s] self = <Function test_async_with_session>
[ 106s] /usr/lib/python3.9/site-packages/pluggy/_hooks.py:265: in __call__
[ 106s] return self._hookexec(self.name, self.get_hookimpls(), kwargs, firstresult)
[ 106s] argname = 'pyfuncitem'
[ 106s] args = ()
[ 106s] firstresult = True
[ 106s] kwargs = {'pyfuncitem': <Function test_async_with_session>}
[ 106s] self = <_HookCaller 'pytest_pyfunc_call'>
[ 106s] /usr/lib/python3.9/site-packages/pluggy/_manager.py:80: in _hookexec
[ 106s] return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
[ 106s] firstresult = True
[ 106s] hook_name = 'pytest_pyfunc_call'
[ 106s] kwargs = {'pyfuncitem': <Function test_async_with_session>}
[ 106s] methods = [<HookImpl plugin_name='python', plugin=<module '_pytest.python' from '/usr/lib/python3.9/site-packages/_pytest/python.py'>>,
[ 106s] <HookImpl plugin_name='aiohttp.pytest_plugin', plugin=<module 'aiohttp.pytest_plugin' from '/home/abuild/rpmbuild/BUILDROOT/python-aiohttp-3.8.1-0.x86_64/usr/lib64/python3.9/site-packages/aiohttp/pytest_plugin.py'>>]
[ 106s] self = <_pytest.config.PytestPluginManager object at 0x7f7437ca8f70>
[ 106s] ../../BUILDROOT/python-aiohttp-3.8.1-0.x86_64/usr/lib64/python3.9/site-packages/aiohttp/pytest_plugin.py:186: in pytest_pyfunc_call
[ 106s] _loop.run_until_complete(pyfuncitem.obj(**testargs))
[ 106s] _loop = <_UnixSelectorEventLoop running=False closed=False debug=False>
[ 106s] existing_loop = None
[ 106s] fast = False
[ 106s] pyfuncitem = <Function test_async_with_session>
[ 106s] testargs = {}
[ 106s] /usr/lib64/python3.9/asyncio/base_events.py:642: in run_until_complete
[ 106s] return future.result()
[ 106s] future = <Task finished name='Task-1096' coro=<test_async_with_session() done, defined at /home/abuild/rpmbuild/BUILD/aiohttp-3.8.1/tests/test_client_functional.py:2430> exception=PytestRemovedIn8Warning('Passing None has been deprecated.\nSee https://docs.pytest.org/en/latest/how-to/capture-warnings.html#additional-use-cases-of-warnings-in-tests for alternatives in common use cases.')>
[ 106s] new_task = True
[ 106s] self = <_UnixSelectorEventLoop running=False closed=False debug=False>
[ 106s] tests/test_client_functional.py:2431: in test_async_with_session
[ 106s] with pytest.warns(None) as cm:
[ 106s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
[ 106s]
[ 106s] self = WarningsChecker(record=True), expected_warning = None, match_expr = None
[ 106s]
[ 106s] def __init__(
[ 106s] self,
[ 106s] expected_warning: Optional[
[ 106s] Union[Type[Warning], Tuple[Type[Warning], ...]]
[ 106s] ] = Warning,
[ 106s] match_expr: Optional[Union[str, Pattern[str]]] = None,
[ 106s] *,
[ 106s] _ispytest: bool = False,
[ 106s] ) -> None:
[ 106s] check_ispytest(_ispytest)
[ 106s] super().__init__(_ispytest=True)
[ 106s]
[ 106s] msg = "exceptions must be derived from Warning, not %s"
[ 106s] if expected_warning is None:
[ 106s] > warnings.warn(WARNS_NONE_ARG, stacklevel=4)
[ 106s] E pytest.PytestRemovedIn8Warning: Passing None has been deprecated.
[ 106s] E See https://docs.pytest.org/en/latest/how-to/capture-warnings.html#additional-use-cases-of-warnings-in-tests for alternatives in common use cases.
[ 106s]
[ 106s] __class__ = <class '_pytest.recwarn.WarningsChecker'>
[ 106s] _ispytest = True
[ 106s] expected_warning = None
[ 106s] match_expr = None
[ 106s] msg = 'exceptions must be derived from Warning, not %s'
[ 106s] self = WarningsChecker(record=True)
[ 106s]
[ 106s] /usr/lib/python3.9/site-packages/_pytest/recwarn.py:246: PytestRemovedIn8WarningPython Version
[ 22s] ============================= test session starts ==============================
[ 22s] platform linux -- Python 3.9.10, pytest-7.1.1, pluggy-1.0.0 -- /usr/bin/python3.9
[ 22s] cachedir: .pytest_cache
[ 22s] rootdir: /home/abuild/rpmbuild/BUILD/aiohttp-3.8.1, configfile: setup.cfg, testpaths: tests/
[ 22s] plugins: timeout-2.0.2, mock-3.6.1aiohttp Version
3.8.1multidict Version
6.0.2yarl Version
1.7.2OS
openSUSE Tumbleweed Linux
Related component
Server, Client
Additional context
No response
Code of Conduct
- I agree to follow the aio-libs Code of Conduct