Skip to content

Upgrade pytest from 8.3.3 to 8.3.4 triggers AttributeError: module 'code' has no attribute '__path__'. Did you mean: '__all__'? #13026

@petervandenabeele

Description

@petervandenabeele
  • a detailed description of the bug or problem you are having

I have a number of pytest tests that used to work in 8.3.3.

Since I upgraded to pytest 8.3.4, these tests fail reliably in 2 different projects.
(see details below).

  • output of pip list from the virtual environment you are using
poetry run pip list Package Version ------------------------- -------------- anyio 4.6.2.post1 appnope 0.1.4 argon2-cffi 23.1.0 argon2-cffi-bindings 21.2.0 arrow 1.3.0 asttokens 3.0.0 async-lru 2.0.4 attrs 24.2.0 babel 2.16.0 beautifulsoup4 4.12.3 black 24.10.0 bleach 6.2.0 boto3 1.35.74 botocore 1.35.74 build 1.2.2.post1 CacheControl 0.14.0 certifi 2024.8.30 cffi 1.17.1 charset-normalizer 3.4.0 cleo 2.1.0 click 8.1.7 comm 0.2.2 crashtest 0.4.1 debugpy 1.8.9 decorator 5.1.1 defusedxml 0.7.1 distlib 0.3.9 dulwich 0.21.7 executing 2.1.0 fastjsonschema 2.21.1 filelock 3.16.1 fqdn 1.5.1 h11 0.14.0 httpcore 1.0.7 httpx 0.28.0 idna 3.10 iniconfig 2.0.0 installer 0.7.0 ipykernel 6.29.5 ipython 8.30.0 isoduration 20.11.0 jaraco.classes 3.4.0 jedi 0.19.2 Jinja2 3.1.4 jmespath 1.0.1 json5 0.10.0 jsonpointer 3.0.0 jsonschema 4.23.0 jsonschema-specifications 2024.10.1 jupyter_client 8.6.3 jupyter_core 5.7.2 jupyter-events 0.10.0 jupyter-lsp 2.2.5 jupyter_server 2.14.2 jupyter_server_terminals 0.5.3 jupyterlab 4.3.2 jupyterlab_pygments 0.3.0 jupyterlab_server 2.27.3 keyring 24.3.1 MarkupSafe 3.0.2 matplotlib-inline 0.1.7 mistune 3.0.2 more-itertools 10.5.0 msgpack 1.1.0 mypy-extensions 1.0.0 nbclient 0.10.1 nbconvert 7.16.4 nbformat 5.10.4 nest-asyncio 1.6.0 notebook_shim 0.2.4 numpy 2.1.3 overrides 7.7.0 packaging 24.2 pandas 2.2.3 pandocfilters 1.5.1 parso 0.8.4 pathspec 0.12.1 pexpect 4.9.0 pip 24.2 pkginfo 1.11.2 platformdirs 4.3.6 plotly 5.24.1 pluggy 1.5.0 poetry 1.8.4 poetry-core 1.9.1 poetry-plugin-export 1.8.0 prometheus_client 0.21.1 prompt_toolkit 3.0.48 psutil 6.1.0 ptyprocess 0.7.0 pure_eval 0.2.3 pycparser 2.22 Pygments 2.18.0 pyproject_hooks 1.2.0 pytest 8.3.3 python-dateutil 2.9.0.post0 python-json-logger 2.0.7 pytz 2024.2 PyYAML 6.0.2 pyzmq 26.2.0 RapidFuzz 3.10.1 referencing 0.35.1 requests 2.32.3 requests-toolbelt 1.0.0 rfc3339-validator 0.1.4 rfc3986-validator 0.1.1 rpds-py 0.22.3 s3transfer 0.10.4 Send2Trash 1.8.3 setuptools 75.6.0 shellingham 1.5.4 six 1.16.0 sniffio 1.3.1 soupsieve 2.6 stack-data 0.6.3 tenacity 9.0.0 terminado 0.18.1 tinycss2 1.4.0 tokenize_rt 6.1.0 tomlkit 0.13.2 tornado 6.4.2 traitlets 5.14.3 trove-classifiers 2024.10.21.16 types-python-dateutil 2.9.0.20241003 tzdata 2024.2 uri-template 1.3.0 urllib3 2.2.3 virtualenv 20.27.1 wcwidth 0.2.13 webcolors 24.11.1 webencodings 0.5.1 websocket-client 1.8.0 xattr 1.1.0 
  • pytest and operating system versions
pytest 8.3.4 Mac OS X updated python 3.13.0 

Maybe related to this code below:

[tool.pytest.ini_options]
addopts = [
"--import-mode=importlib",
]
pythonpath = "code"

✗ cat pyproject.toml [tool.poetry] name = "..." version = "0.1.0" description = "Analysis for ..." authors = ["Peter Vandenabeele <peter.vandenabeele@...>"] license = "Proprietary" readme = "README.md" package-mode = false [tool.poetry.dependencies] python = "^3.13" numpy = "^2.1.2" pandas = "^2.2.3" jupyterlab = "^4.2.5" boto3 = "^1.35.51" plotly = "^5.24.1" [tool.poetry.group.dev.dependencies] pytest = "8.3.4" # FAILS with 8.3.4 ; SUCCESS with 8.3.3 black = {version="*", extras=["jupyter"]} [tool.pytest.ini_options] addopts = [ "--import-mode=importlib", ] pythonpath = "code" [build-system] requires = ["poetry-core"] build-backend = "poetry.core.masonry.api" 
  • minimal example if possible
___________________________________________ ERROR collecting code/tests/..._test.py ___________________________________________ <frozen importlib._bootstrap_external>:1564: in find_spec ??? <frozen importlib._bootstrap_external>:1362: in __init__ ??? <frozen importlib._bootstrap_external>:1378: in _get_parent_path ??? E AttributeError: module 'code' has no attribute '__path__'. Did you mean: '__all__'? ======================================================== short test summary info ========================================================= ERROR code/tests/....._test.py - AttributeError: module 'code' has no attribute '__path__'. Did you mean: '__all__'? same 2/4 same 3/4 same 4/4 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Interrupted: 4 errors during collection !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! =========================================================== 4 errors in 0.09s ============================================================ ✗ vim pyproject.toml # CHANGE pytest back to 8.3.3 ✗ poetry lock Updating dependencies Resolving dependencies... (4.0s) Writing lock file ✗ poetry install Installing dependencies from lock file Package operations: 0 installs, 1 update, 0 removals - Downgrading pytest (8.3.4 -> 8.3.3) ✗ pytest ========================================================== test session starts =========================================================== platform darwin -- Python 3.13.0, pytest-8.3.3, pluggy-1.5.0 rootdir: /Users/peter_v/BF/github/... configfile: pyproject.toml plugins: anyio-4.6.2.post1 collected 58 items code/tests/..._test.py .. [ 3%] code/tests/..._test.py ...... [ 13%] code/tests/..._test.py .............. [ 37%] code/tests/..._test.py .................................... [100%] =========================================================== 58 passed in 0.39s =========================================================== 

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions