Source: python-pyfakefs
Version: 5.6.0-1
Severity: normal
User: [email protected]
Usertags: python3.13
Forwarded: https://github.com/pytest-dev/pyfakefs/issues/1017

This package failed build from source when test-built against a version of
python3-defaults that includes 3.13 as a supported version.

To reproduce this issue, build against python3-defaults (python3-all-dev etc.)
from Debian experimental.

What's new in Python 3.13:
https://docs.python.org/3.13/whatsnew/3.13.html

Log snippet:

   dh_auto_test -O--buildsystem=pybuild
I: pybuild base:311: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_pyfakefs/build; 
python3.13 -m pytest 
============================= test session starts ==============================
platform linux -- Python 3.13.0rc2, pytest-8.3.3, pluggy-1.5.0
rootdir: /<<PKGBUILDDIR>>
configfile: pyproject.toml
plugins: pyfakefs-5.6.0, typeguard-4.3.0
collected 2583 items

pyfakefs/pytest_tests/pytest_check_failed_plugin_test.py s               [  0%]
pyfakefs/pytest_tests/pytest_fixture_param_test.py X..                   [  0%]
pyfakefs/pytest_tests/pytest_fixture_test.py X...                        [  0%]
pyfakefs/pytest_tests/pytest_module_fixture_test.py .Traceback (most recent 
call last):
  File 
"/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_pyfakefs/build/pyfakefs/fake_filesystem.py",
 line 1678, in get_object_from_normpath
  File 
"/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_pyfakefs/build/pyfakefs/fake_file.py", 
line 567, in get_entry
KeyError: 'build'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/_pytest/config/__init__.py", line 175, 
in main
    ret: ExitCode | int = config.hook.pytest_cmdline_main(config=config)
                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/pluggy/_hooks.py", line 513, in __call__
    return self._hookexec(self.name, self._hookimpls.copy(), kwargs, 
firstresult)
           
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/pluggy/_manager.py", line 120, in 
_hookexec
    return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
           ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/pluggy/_callers.py", line 139, in 
_multicall
    raise exception.with_traceback(exception.__traceback__)
  File "/usr/lib/python3/dist-packages/pluggy/_callers.py", line 103, in 
_multicall
    res = hook_impl.function(*args)
  File "/usr/lib/python3/dist-packages/_pytest/main.py", line 330, in 
pytest_cmdline_main
    return wrap_session(config, _main)
  File "/usr/lib/python3/dist-packages/_pytest/main.py", line 315, in 
wrap_session
    os.chdir(session.startpath)
    ~~~~~~~~^^^^^^^^^^^^^^^^^^^
  File 
"/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_pyfakefs/build/pyfakefs/fake_os.py", 
line 1426, in wrapped
  File 
"/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_pyfakefs/build/pyfakefs/fake_os.py", 
line 456, in chdir
  File 
"/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_pyfakefs/build/pyfakefs/fake_filesystem.py",
 line 2948, in confirmdir
  File 
"/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_pyfakefs/build/pyfakefs/fake_filesystem.py",
 line 1760, in resolve
  File 
"/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_pyfakefs/build/pyfakefs/fake_filesystem.py",
 line 1689, in get_object_from_normpath
  File 
"/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_pyfakefs/build/pyfakefs/fake_filesystem.py",
 line 430, in raise_os_error
FileNotFoundError: [Errno 2] No such file or directory in the fake filesystem: 
'/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_pyfakefs/build'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "/usr/lib/python3/dist-packages/pytest/__main__.py", line 9, in <module>
    raise SystemExit(pytest.console_main())
                     ~~~~~~~~~~~~~~~~~~~^^
  File "/usr/lib/python3/dist-packages/_pytest/config/__init__.py", line 201, 
in console_main
    code = main()
  File "/usr/lib/python3/dist-packages/_pytest/config/__init__.py", line 181, 
in main
    config._ensure_unconfigure()
    ~~~~~~~~~~~~~~~~~~~~~~~~~~^^
  File "/usr/lib/python3/dist-packages/_pytest/config/__init__.py", line 1123, 
in _ensure_unconfigure
    self.hook.pytest_unconfigure(config=self)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/pluggy/_hooks.py", line 513, in __call__
    return self._hookexec(self.name, self._hookimpls.copy(), kwargs, 
firstresult)
           
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/pluggy/_manager.py", line 120, in 
_hookexec
    return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
           ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/pluggy/_callers.py", line 139, in 
_multicall
    raise exception.with_traceback(exception.__traceback__)
  File "/usr/lib/python3/dist-packages/pluggy/_callers.py", line 103, in 
_multicall
    res = hook_impl.function(*args)
  File "/usr/lib/python3/dist-packages/_pytest/faulthandler.py", line 47, in 
pytest_unconfigure
    os.close(config.stash[fault_handler_stderr_fd_key])
    ~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File 
"/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_pyfakefs/build/pyfakefs/fake_os.py", 
line 1426, in wrapped
  File 
"/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_pyfakefs/build/pyfakefs/fake_os.py", 
line 326, in close
  File 
"/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_pyfakefs/build/pyfakefs/fake_filesystem.py",
 line 885, in get_open_file
  File 
"/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_pyfakefs/build/pyfakefs/fake_filesystem.py",
 line 907, in get_open_files
  File 
"/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_pyfakefs/build/pyfakefs/fake_filesystem.py",
 line 430, in raise_os_error
OSError: [Errno 9] Bad file descriptor in the fake filesystem: '9'

INTERNALERROR> Traceback (most recent call last):
INTERNALERROR>   File "/usr/lib/python3/dist-packages/_pytest/main.py", line 
283, in wrap_session
INTERNALERROR>     session.exitstatus = doit(config, session) or 0
INTERNALERROR>                          ~~~~^^^^^^^^^^^^^^^^^
INTERNALERROR>   File "/usr/lib/python3/dist-packages/_pytest/main.py", line 
337, in _main
INTERNALERROR>     config.hook.pytest_runtestloop(session=session)
INTERNALERROR>     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
INTERNALERROR>   File "/usr/lib/python3/dist-packages/pluggy/_hooks.py", line 
513, in __call__
INTERNALERROR>     return self._hookexec(self.name, self._hookimpls.copy(), 
kwargs, firstresult)
INTERNALERROR>            
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
INTERNALERROR>   File "/usr/lib/python3/dist-packages/pluggy/_manager.py", line 
120, in _hookexec
INTERNALERROR>     return self._inner_hookexec(hook_name, methods, kwargs, 
firstresult)
INTERNALERROR>            
~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
INTERNALERROR>   File "/usr/lib/python3/dist-packages/pluggy/_callers.py", line 
139, in _multicall
INTERNALERROR>     raise exception.with_traceback(exception.__traceback__)
INTERNALERROR>   File "/usr/lib/python3/dist-packages/pluggy/_callers.py", line 
122, in _multicall
INTERNALERROR>     teardown.throw(exception)  # type: ignore[union-attr]
INTERNALERROR>     ~~~~~~~~~~~~~~^^^^^^^^^^^
INTERNALERROR>   File "/usr/lib/python3/dist-packages/_pytest/logging.py", line 
803, in pytest_runtestloop
INTERNALERROR>     return (yield)  # Run all the tests.
INTERNALERROR>             ^^^^^
INTERNALERROR>   File "/usr/lib/python3/dist-packages/pluggy/_callers.py", line 
122, in _multicall
INTERNALERROR>     teardown.throw(exception)  # type: ignore[union-attr]
INTERNALERROR>     ~~~~~~~~~~~~~~^^^^^^^^^^^
INTERNALERROR>   File "/usr/lib/python3/dist-packages/_pytest/terminal.py", 
line 673, in pytest_runtestloop
INTERNALERROR>     result = yield
INTERNALERROR>              ^^^^^
INTERNALERROR>   File "/usr/lib/python3/dist-packages/pluggy/_callers.py", line 
103, in _multicall
INTERNALERROR>     res = hook_impl.function(*args)
INTERNALERROR>   File "/usr/lib/python3/dist-packages/_pytest/main.py", line 
362, in pytest_runtestloop
INTERNALERROR>     item.config.hook.pytest_runtest_protocol(item=item, 
nextitem=nextitem)
INTERNALERROR>     
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
INTERNALERROR>   File "/usr/lib/python3/dist-packages/pluggy/_hooks.py", line 
513, in __call__
INTERNALERROR>     return self._hookexec(self.name, self._hookimpls.copy(), 
kwargs, firstresult)
INTERNALERROR>            
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
INTERNALERROR>   File "/usr/lib/python3/dist-packages/pluggy/_manager.py", line 
120, in _hookexec
INTERNALERROR>     return self._inner_hookexec(hook_name, methods, kwargs, 
firstresult)
INTERNALERROR>            
~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
INTERNALERROR>   File "/usr/lib/python3/dist-packages/pluggy/_callers.py", line 
139, in _multicall
INTERNALERROR>     raise exception.with_traceback(exception.__traceback__)
INTERNALERROR>   File "/usr/lib/python3/dist-packages/pluggy/_callers.py", line 
122, in _multicall
INTERNALERROR>     teardown.throw(exception)  # type: ignore[union-attr]
INTERNALERROR>     ~~~~~~~~~~~~~~^^^^^^^^^^^
INTERNALERROR>   File "/usr/lib/python3/dist-packages/_pytest/warnings.py", 
line 112, in pytest_runtest_protocol
INTERNALERROR>     return (yield)
INTERNALERROR>             ^^^^^
INTERNALERROR>   File "/usr/lib/python3/dist-packages/pluggy/_callers.py", line 
122, in _multicall
INTERNALERROR>     teardown.throw(exception)  # type: ignore[union-attr]
INTERNALERROR>     ~~~~~~~~~~~~~~^^^^^^^^^^^
INTERNALERROR>   File 
"/usr/lib/python3/dist-packages/_pytest/assertion/__init__.py", line 176, in 
pytest_runtest_protocol
INTERNALERROR>     return (yield)
INTERNALERROR>             ^^^^^
INTERNALERROR>   File "/usr/lib/python3/dist-packages/pluggy/_callers.py", line 
122, in _multicall
INTERNALERROR>     teardown.throw(exception)  # type: ignore[union-attr]
INTERNALERROR>     ~~~~~~~~~~~~~~^^^^^^^^^^^
INTERNALERROR>   File "/usr/lib/python3/dist-packages/_pytest/unittest.py", 
line 429, in pytest_runtest_protocol
INTERNALERROR>     res = yield
INTERNALERROR>           ^^^^^
INTERNALERROR>   File "/usr/lib/python3/dist-packages/pluggy/_callers.py", line 
122, in _multicall
INTERNALERROR>     teardown.throw(exception)  # type: ignore[union-attr]
INTERNALERROR>     ~~~~~~~~~~~~~~^^^^^^^^^^^
INTERNALERROR>   File "/usr/lib/python3/dist-packages/_pytest/faulthandler.py", 
line 88, in pytest_runtest_protocol
INTERNALERROR>     return (yield)
INTERNALERROR>             ^^^^^
INTERNALERROR>   File "/usr/lib/python3/dist-packages/pluggy/_callers.py", line 
103, in _multicall
INTERNALERROR>     res = hook_impl.function(*args)
INTERNALERROR>   File "/usr/lib/python3/dist-packages/_pytest/runner.py", line 
112, in pytest_runtest_protocol
INTERNALERROR>     ihook.pytest_runtest_logstart(nodeid=item.nodeid, 
location=item.location)
INTERNALERROR>                                                                
^^^^^^^^^^^^^
INTERNALERROR>   File "/usr/lib/python3.13/functools.py", line 1037, in __get__
INTERNALERROR>     val = self.func(instance)
INTERNALERROR>   File "/usr/lib/python3/dist-packages/_pytest/nodes.py", line 
764, in location
INTERNALERROR>     relfspath = self.session._node_location_to_relpath(path)
INTERNALERROR>   File "/usr/lib/python3/dist-packages/_pytest/main.py", line 
643, in _node_location_to_relpath
INTERNALERROR>     return self._bestrelpathcache[node_path]
INTERNALERROR>            ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^
INTERNALERROR>   File "/usr/lib/python3/dist-packages/_pytest/main.py", line 
485, in __missing__
INTERNALERROR>     r = bestrelpath(self.path, path)
INTERNALERROR>   File "/usr/lib/python3/dist-packages/_pytest/pathlib.py", line 
958, in bestrelpath
INTERNALERROR>     reldirectory = directory.relative_to(base)
INTERNALERROR>   File "/usr/lib/python3.13/pathlib/_local.py", line 385, in 
relative_to
INTERNALERROR>     raise ValueError(f"{str(self)!r} is not in the subpath of 
{str(other)!r}")
INTERNALERROR> ValueError: '/<<PKGBUILDDIR>>' is not in the subpath of 
'/<<PKGBUILDDIR>>'
E: pybuild pybuild:389: test: plugin pyproject failed with: exit code=1: cd 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_pyfakefs/build; python3.13 -m pytest 
I: pybuild base:311: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_pyfakefs/build; 
python3.12 -m pytest 
============================= test session starts ==============================
platform linux -- Python 3.12.6, pytest-8.3.3, pluggy-1.5.0
rootdir: /<<PKGBUILDDIR>>
configfile: pyproject.toml
plugins: pyfakefs-5.6.0, typeguard-4.3.0
collected 2583 items

pyfakefs/pytest_tests/pytest_check_failed_plugin_test.py s               [  0%]
pyfakefs/pytest_tests/pytest_fixture_param_test.py X..                   [  0%]
pyfakefs/pytest_tests/pytest_fixture_test.py X...                        [  0%]
pyfakefs/pytest_tests/pytest_module_fixture_test.py ..                   [  0%]
pyfakefs/pytest_tests/pytest_plugin_test.py .........                    [  0%]
pyfakefs/pytest_tests/pytest_reload_pandas_test.py ss                    [  0%]
pyfakefs/tests/dynamic_patch_test.py .....                               [  1%]
pyfakefs/tests/example_test.py .......s                                  [  1%]
pyfakefs/tests/fake_filesystem_glob_test.py .........                    [  1%]
pyfakefs/tests/fake_filesystem_shutil_test.py ...................s...sss [  2%]
ssssssssssssssssssssss...........sssssssssss                             [  4%]
pyfakefs/tests/fake_filesystem_test.py ................................. [  5%]
........................................................................ [  8%]
...............s.........ss............................................. [ 11%]
..s..................................................................... [ 14%]
............................                                             [ 15%]
pyfakefs/tests/fake_filesystem_unittest_test.py ........................ [ 16%]
....x...............................x..........................s.s.....  [ 18%]
pyfakefs/tests/fake_filesystem_vs_real_test.py ......................... [ 19%]
..                                                                       [ 19%]
pyfakefs/tests/fake_legacy_modules_test.py .............s....s....s...s. [ 20%]
.ss......................s.s........s................................... [ 23%]
.............sssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 26%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 29%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 32%]
sssssssssssssssssssssssssss                                              [ 33%]
pyfakefs/tests/fake_open_test.py ....................................... [ 34%]
................................ssssssssssssssssssssssssssssssssssssssss [ 37%]
sssssssssssssssssssssssssssssss.........sssssssss..s.ssss..sss.......... [ 40%]
..ssssssssssss..........ssssssssss..s.....ssssssss.....sssss.....sss..ss [ 43%]
.....sssss..................ssssssssssssssssss.                          [ 44%]
pyfakefs/tests/fake_os_test.py ......................................... [ 46%]
..................................s..................................... [ 49%]
........................................................................ [ 51%]
........................................................................ [ 54%]
........................................ssssssssssssssssssssssssssssssss [ 57%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 60%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 63%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 65%]
sssssssssssssssssssssssssssssssssssssssssssssssss....................... [ 68%]
...............................................................sssssssss [ 71%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 74%]
sssss.................s...................................s......sssssss [ 77%]
ssssssssssssssssssssssssssssssssssssssssss...........sssssssssss........ [ 79%]
............ssssssssssssssssssss...................sssssssssssssss...... [ 82%]
.......sssssssssssssss.............sssssssssssssss.............sssssssss [ 85%]
ssssss...................sssssssssssss                                   [ 86%]
pyfakefs/tests/fake_pathlib_test.py ....s.ssssssssssssss..s......sssssss [ 88%]
ss.....s.s........s....sssssssssssssssssssss...s...s..ss................ [ 91%]
.sssssssssssssssssssssssssssss.......................................... [ 93%]
..ssssssssssssssssssssssssssssssssssssssssssss.....s.....                [ 96%]
pyfakefs/tests/fake_stat_time_test.py .......sssssss........ssssssss.... [ 97%]
...sssssss........ssssssss.....sssss......ssssss                         [ 99%]
pyfakefs/tests/fake_tempfile_test.py ........                            [ 99%]
pyfakefs/tests/mox3_stubout_test.py .........                            [ 99%]
pyfakefs/tests/patched_packages_test.py ..                               [100%]

=========== 1434 passed, 1145 skipped, 2 xfailed, 2 xpassed in 5.84s ===========
dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p "3.13 
3.12" returned exit code 13
make: *** [debian/rules:6: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2
--------------------------------------------------------------------------------
Build finished at 2024-09-19T06:22:39Z

If required, the full build log is available here (for the next 30 days):
https://debusine.debian.net/artifact/787699/

This bug has been filed at "normal" severity, as we haven't started the
transition to add 3.13 as a supported version, yet. This will be raised to RC
as soon as that happens, hopefully well before trixie.

Thanks,

Stefano

Reply via email to