Tests passing :-).
$ python -m pytest tests/test_web_urldispatcher.py::test_access_mock_special_resource
========================================================= test session starts =========================================================
platform linux -- Python 3.13.0b4, pytest-8.3.2, pluggy-1.5.0 -- /tmp/aiohttp/.venv/bin/python
cachedir: .pytest_cache
rootdir: /tmp/aiohttp
configfile: setup.cfg
plugins: cov-5.0.0
collected 1 item
tests/test_web_urldispatcher.py::test_access_mock_special_resource[pyloop]
INTERNALERROR> Traceback (most recent call last):
INTERNALERROR> File "/tmp/aiohttp/.venv/lib/python3.13/site-packages/_pytest/main.py", line 283, in wrap_session
INTERNALERROR> session.exitstatus = doit(config, session) or 0
INTERNALERROR> ~~~~^^^^^^^^^^^^^^^^^
INTERNALERROR> File "/tmp/aiohttp/.venv/lib/python3.13/site-packages/_pytest/main.py", line 337, in _main
INTERNALERROR> config.hook.pytest_runtestloop(session=session)
INTERNALERROR> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
INTERNALERROR> File "/tmp/aiohttp/.venv/lib/python3.13/site-packages/pluggy/_hooks.py", line 513, in __call__
INTERNALERROR> return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
INTERNALERROR> ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
INTERNALERROR> File "/tmp/aiohttp/.venv/lib/python3.13/site-packages/pluggy/_manager.py", line 120, in _hookexec
INTERNALERROR> return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
INTERNALERROR> ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
INTERNALERROR> File "/tmp/aiohttp/.venv/lib/python3.13/site-packages/pluggy/_callers.py", line 182, in _multicall
INTERNALERROR> return outcome.get_result()
INTERNALERROR> ~~~~~~~~~~~~~~~~~~^^
INTERNALERROR> File "/tmp/aiohttp/.venv/lib/python3.13/site-packages/pluggy/_result.py", line 100, in get_result
INTERNALERROR> raise exc.with_traceback(exc.__traceback__)
INTERNALERROR> File "/tmp/aiohttp/.venv/lib/python3.13/site-packages/pluggy/_callers.py", line 167, in _multicall
INTERNALERROR> teardown.throw(outcome._exception)
INTERNALERROR> ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
INTERNALERROR> File "/tmp/aiohttp/.venv/lib/python3.13/site-packages/_pytest/logging.py", line 805, in pytest_runtestloop
INTERNALERROR> return (yield) # Run all the tests.
INTERNALERROR> ^^^^^
INTERNALERROR> File "/tmp/aiohttp/.venv/lib/python3.13/site-packages/pluggy/_callers.py", line 167, in _multicall
INTERNALERROR> teardown.throw(outcome._exception)
INTERNALERROR> ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
INTERNALERROR> File "/tmp/aiohttp/.venv/lib/python3.13/site-packages/_pytest/terminal.py", line 673, in pytest_runtestloop
INTERNALERROR> result = yield
INTERNALERROR> ^^^^^
INTERNALERROR> File "/tmp/aiohttp/.venv/lib/python3.13/site-packages/pluggy/_callers.py", line 103, in _multicall
INTERNALERROR> res = hook_impl.function(*args)
INTERNALERROR> File "/tmp/aiohttp/.venv/lib/python3.13/site-packages/_pytest/main.py", line 362, in pytest_runtestloop
INTERNALERROR> item.config.hook.pytest_runtest_protocol(item=item, nextitem=nextitem)
INTERNALERROR> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
INTERNALERROR> File "/tmp/aiohttp/.venv/lib/python3.13/site-packages/pluggy/_hooks.py", line 513, in __call__
INTERNALERROR> return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
INTERNALERROR> ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
INTERNALERROR> File "/tmp/aiohttp/.venv/lib/python3.13/site-packages/pluggy/_manager.py", line 120, in _hookexec
INTERNALERROR> return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
INTERNALERROR> ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
INTERNALERROR> File "/tmp/aiohttp/.venv/lib/python3.13/site-packages/pluggy/_callers.py", line 139, in _multicall
INTERNALERROR> raise exception.with_traceback(exception.__traceback__)
INTERNALERROR> File "/tmp/aiohttp/.venv/lib/python3.13/site-packages/pluggy/_callers.py", line 122, in _multicall
INTERNALERROR> teardown.throw(exception) # type: ignore[union-attr]
INTERNALERROR> ~~~~~~~~~~~~~~^^^^^^^^^^^
INTERNALERROR> File "/tmp/aiohttp/.venv/lib/python3.13/site-packages/_pytest/warnings.py", line 112, in pytest_runtest_protocol
INTERNALERROR> return (yield)
INTERNALERROR> ^^^^^
INTERNALERROR> File "/tmp/aiohttp/.venv/lib/python3.13/site-packages/pluggy/_callers.py", line 122, in _multicall
INTERNALERROR> teardown.throw(exception) # type: ignore[union-attr]
INTERNALERROR> ~~~~~~~~~~~~~~^^^^^^^^^^^
INTERNALERROR> File "/tmp/aiohttp/.venv/lib/python3.13/site-packages/_pytest/assertion/__init__.py", line 176, in pytest_runtest_protocol
INTERNALERROR> return (yield)
INTERNALERROR> ^^^^^
INTERNALERROR> File "/tmp/aiohttp/.venv/lib/python3.13/site-packages/pluggy/_callers.py", line 122, in _multicall
INTERNALERROR> teardown.throw(exception) # type: ignore[union-attr]
INTERNALERROR> ~~~~~~~~~~~~~~^^^^^^^^^^^
INTERNALERROR> File "/tmp/aiohttp/.venv/lib/python3.13/site-packages/_pytest/unittest.py", line 429, in pytest_runtest_protocol
INTERNALERROR> res = yield
INTERNALERROR> ^^^^^
INTERNALERROR> File "/tmp/aiohttp/.venv/lib/python3.13/site-packages/pluggy/_callers.py", line 122, in _multicall
INTERNALERROR> teardown.throw(exception) # type: ignore[union-attr]
INTERNALERROR> ~~~~~~~~~~~~~~^^^^^^^^^^^
INTERNALERROR> File "/tmp/aiohttp/.venv/lib/python3.13/site-packages/_pytest/faulthandler.py", line 87, in pytest_runtest_protocol
INTERNALERROR> return (yield)
INTERNALERROR> ^^^^^
INTERNALERROR> File "/tmp/aiohttp/.venv/lib/python3.13/site-packages/pluggy/_callers.py", line 103, in _multicall
INTERNALERROR> res = hook_impl.function(*args)
INTERNALERROR> File "/tmp/aiohttp/.venv/lib/python3.13/site-packages/_pytest/runner.py", line 113, in pytest_runtest_protocol
INTERNALERROR> runtestprotocol(item, nextitem=nextitem)
INTERNALERROR> ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^
INTERNALERROR> File "/tmp/aiohttp/.venv/lib/python3.13/site-packages/_pytest/runner.py", line 132, in runtestprotocol
INTERNALERROR> reports.append(call_and_report(item, "call", log))
INTERNALERROR> ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^
INTERNALERROR> File "/tmp/aiohttp/.venv/lib/python3.13/site-packages/_pytest/runner.py", line 244, in call_and_report
INTERNALERROR> report: TestReport = ihook.pytest_runtest_makereport(item=item, call=call)
INTERNALERROR> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^
INTERNALERROR> File "/tmp/aiohttp/.venv/lib/python3.13/site-packages/pluggy/_hooks.py", line 513, in __call__
INTERNALERROR> return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
INTERNALERROR> ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
INTERNALERROR> File "/tmp/aiohttp/.venv/lib/python3.13/site-packages/pluggy/_manager.py", line 120, in _hookexec
INTERNALERROR> return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
INTERNALERROR> ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
INTERNALERROR> File "/tmp/aiohttp/.venv/lib/python3.13/site-packages/pluggy/_callers.py", line 139, in _multicall
INTERNALERROR> raise exception.with_traceback(exception.__traceback__)
INTERNALERROR> File "/tmp/aiohttp/.venv/lib/python3.13/site-packages/pluggy/_callers.py", line 122, in _multicall
INTERNALERROR> teardown.throw(exception) # type: ignore[union-attr]
INTERNALERROR> ~~~~~~~~~~~~~~^^^^^^^^^^^
INTERNALERROR> File "/tmp/aiohttp/.venv/lib/python3.13/site-packages/_pytest/tmpdir.py", line 318, in pytest_runtest_makereport
INTERNALERROR> rep = yield
INTERNALERROR> ^^^^^
INTERNALERROR> File "/tmp/aiohttp/.venv/lib/python3.13/site-packages/pluggy/_callers.py", line 122, in _multicall
INTERNALERROR> teardown.throw(exception) # type: ignore[union-attr]
INTERNALERROR> ~~~~~~~~~~~~~~^^^^^^^^^^^
INTERNALERROR> File "/tmp/aiohttp/.venv/lib/python3.13/site-packages/_pytest/skipping.py", line 269, in pytest_runtest_makereport
INTERNALERROR> rep = yield
INTERNALERROR> ^^^^^
INTERNALERROR> File "/tmp/aiohttp/.venv/lib/python3.13/site-packages/pluggy/_callers.py", line 103, in _multicall
INTERNALERROR> res = hook_impl.function(*args)
INTERNALERROR> File "/tmp/aiohttp/.venv/lib/python3.13/site-packages/_pytest/runner.py", line 368, in pytest_runtest_makereport
INTERNALERROR> return TestReport.from_item_and_call(item, call)
INTERNALERROR> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^
INTERNALERROR> File "/tmp/aiohttp/.venv/lib/python3.13/site-packages/_pytest/reports.py", line 376, in from_item_and_call
INTERNALERROR> longrepr = item.repr_failure(excinfo)
INTERNALERROR> File "/tmp/aiohttp/.venv/lib/python3.13/site-packages/_pytest/python.py", line 1669, in repr_failure
INTERNALERROR> return self._repr_failure_py(excinfo, style=style)
INTERNALERROR> ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^
INTERNALERROR> File "/tmp/aiohttp/.venv/lib/python3.13/site-packages/_pytest/nodes.py", line 456, in _repr_failure_py
INTERNALERROR> return excinfo.getrepr(
INTERNALERROR> ~~~~~~~~~~~~~~~^
INTERNALERROR> funcargs=True,
INTERNALERROR> ^^^^^^^^^^^^^^
INTERNALERROR> ...<5 lines>...
INTERNALERROR> truncate_args=truncate_args,
INTERNALERROR> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
INTERNALERROR> )
INTERNALERROR> ^
INTERNALERROR> File "/tmp/aiohttp/.venv/lib/python3.13/site-packages/_pytest/_code/code.py", line 690, in getrepr
INTERNALERROR> return fmt.repr_excinfo(self)
INTERNALERROR> ~~~~~~~~~~~~~~~~^^^^^^
INTERNALERROR> File "/tmp/aiohttp/.venv/lib/python3.13/site-packages/_pytest/_code/code.py", line 1058, in repr_excinfo
INTERNALERROR> reprtraceback = self.repr_traceback(excinfo_)
INTERNALERROR> File "/tmp/aiohttp/.venv/lib/python3.13/site-packages/_pytest/_code/code.py", line 971, in repr_traceback
INTERNALERROR> traceback = self.tbfilter(excinfo)
INTERNALERROR> File "/tmp/aiohttp/.venv/lib/python3.13/site-packages/_pytest/python.py", line 1635, in _traceback_filter
INTERNALERROR> path, firstlineno = code.path, code.firstlineno
INTERNALERROR> ^^^^^^^^^
INTERNALERROR> File "/tmp/aiohttp/.venv/lib/python3.13/site-packages/_pytest/_code/code.py", line 97, in path
INTERNALERROR> if not p.exists():
INTERNALERROR> ~~~~~~~~^^
INTERNALERROR> File "/usr/lib/python3.13/pathlib/_abc.py", line 450, in exists
INTERNALERROR> self.stat(follow_symlinks=follow_symlinks)
INTERNALERROR> ~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
INTERNALERROR> TypeError: test_access_mock_special_resource.<locals>.mock_stat() got an unexpected keyword argument 'follow_symlinks'
Traceback (most recent call last):
File "<frozen runpy>", line 198, in _run_module_as_main
File "<frozen runpy>", line 88, in _run_code
File "/tmp/aiohttp/.venv/lib/python3.13/site-packages/pytest/__main__.py", line 9, in <module>
raise SystemExit(pytest.console_main())
~~~~~~~~~~~~~~~~~~~^^
File "/tmp/aiohttp/.venv/lib/python3.13/site-packages/_pytest/config/__init__.py", line 201, in console_main
code = main()
File "/tmp/aiohttp/.venv/lib/python3.13/site-packages/_pytest/config/__init__.py", line 175, in main
ret: ExitCode | int = config.hook.pytest_cmdline_main(config=config)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^
File "/tmp/aiohttp/.venv/lib/python3.13/site-packages/pluggy/_hooks.py", line 513, in __call__
return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/tmp/aiohttp/.venv/lib/python3.13/site-packages/pluggy/_manager.py", line 120, in _hookexec
return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/tmp/aiohttp/.venv/lib/python3.13/site-packages/pluggy/_callers.py", line 139, in _multicall
raise exception.with_traceback(exception.__traceback__)
File "/tmp/aiohttp/.venv/lib/python3.13/site-packages/pluggy/_callers.py", line 103, in _multicall
res = hook_impl.function(*args)
File "/tmp/aiohttp/.venv/lib/python3.13/site-packages/_pytest/main.py", line 330, in pytest_cmdline_main
return wrap_session(config, _main)
File "/tmp/aiohttp/.venv/lib/python3.13/site-packages/_pytest/main.py", line 318, in wrap_session
config.hook.pytest_sessionfinish(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
session=session, exitstatus=session.exitstatus
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/tmp/aiohttp/.venv/lib/python3.13/site-packages/pluggy/_hooks.py", line 513, in __call__
return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/tmp/aiohttp/.venv/lib/python3.13/site-packages/pluggy/_manager.py", line 120, in _hookexec
return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/tmp/aiohttp/.venv/lib/python3.13/site-packages/pluggy/_callers.py", line 139, in _multicall
raise exception.with_traceback(exception.__traceback__)
File "/tmp/aiohttp/.venv/lib/python3.13/site-packages/pluggy/_callers.py", line 122, in _multicall
teardown.throw(exception) # type: ignore[union-attr]
~~~~~~~~~~~~~~^^^^^^^^^^^
File "/tmp/aiohttp/.venv/lib/python3.13/site-packages/_pytest/logging.py", line 870, in pytest_sessionfinish
return (yield)
^^^^^
File "/tmp/aiohttp/.venv/lib/python3.13/site-packages/pluggy/_callers.py", line 122, in _multicall
teardown.throw(exception) # type: ignore[union-attr]
~~~~~~~~~~~~~~^^^^^^^^^^^
File "/tmp/aiohttp/.venv/lib/python3.13/site-packages/_pytest/terminal.py", line 893, in pytest_sessionfinish
result = yield
^^^^^
File "/tmp/aiohttp/.venv/lib/python3.13/site-packages/pluggy/_callers.py", line 122, in _multicall
teardown.throw(exception) # type: ignore[union-attr]
~~~~~~~~~~~~~~^^^^^^^^^^^
File "/tmp/aiohttp/.venv/lib/python3.13/site-packages/_pytest/warnings.py", line 141, in pytest_sessionfinish
return (yield)
^^^^^
File "/tmp/aiohttp/.venv/lib/python3.13/site-packages/pluggy/_callers.py", line 103, in _multicall
res = hook_impl.function(*args)
File "/tmp/aiohttp/.venv/lib/python3.13/site-packages/_pytest/cacheprovider.py", line 477, in pytest_sessionfinish
config.cache.set("cache/nodeids", sorted(self.cached_nodeids))
~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/tmp/aiohttp/.venv/lib/python3.13/site-packages/_pytest/cacheprovider.py", line 184, in set
self._mkdir(path.parent)
~~~~~~~~~~~^^^^^^^^^^^^^
File "/tmp/aiohttp/.venv/lib/python3.13/site-packages/_pytest/cacheprovider.py", line 126, in _mkdir
self._ensure_cache_dir_and_supporting_files()
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "/tmp/aiohttp/.venv/lib/python3.13/site-packages/_pytest/cacheprovider.py", line 205, in _ensure_cache_dir_and_supporting_files
if self._cachedir.is_dir():
~~~~~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.13/pathlib/_abc.py", line 465, in is_dir
return S_ISDIR(self.stat(follow_symlinks=follow_symlinks).st_mode)
~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: test_access_mock_special_resource.<locals>.mock_stat() got an unexpected keyword argument 'follow_symlinks'
Exception ignored in atexit callback <function cleanup_numbered_dir at 0x7f9c06ad6d40>:
Traceback (most recent call last):
File "/tmp/aiohttp/.venv/lib/python3.13/site-packages/_pytest/pathlib.py", line 362, in cleanup_numbered_dir
if not root.exists():
File "/usr/lib/python3.13/pathlib/_abc.py", line 450, in exists
self.stat(follow_symlinks=follow_symlinks)
TypeError: test_access_mock_special_resource.<locals>.mock_stat() got an unexpected keyword argument 'follow_symlinks'
Describe the bug
In 3.10.0rc0, the
tests/test_web_urldispatcher.py::test_access_mock_special_resourceis failing on Python 3.13.0b4.The problem was introduced in 4f834b6 (CC @steverep). The previous version passes all tests on 3.13.
To Reproduce
In a venv, inside a directory with the git checkout:
Expected behavior
Tests passing :-).
Logs/tracebacks
Python Version
aiohttp Version
multidict Version
yarl Version
OS
Gentoo Linux amd64
Related component
Server, Client
Additional context
No response
Code of Conduct