Skip to content

Commit

Permalink
Fix compatibility with pytest 7.2
Browse files Browse the repository at this point in the history
With pytest 7.2, the remaining parts of the "py.path" library got vendored, to
get rid of the dependency: pytest-dev/pytest#10396

However, this breaks due to pytest_mypy_plugins importing private API:

    File ".../pytest_mypy_plugins/collect.py", line 13, in <module>
        from py._path.local import LocalPath
    ModuleNotFoundError: No module named 'py._path'; 'py' is not a package

Use py.path.local instead (the public name of the same type), which is part of
the shim included in pytest.
  • Loading branch information
The-Compiler committed Oct 26, 2022
1 parent 19de6e5 commit 9952fbf
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 2 deletions.
6 changes: 6 additions & 0 deletions CHANGELOG.md
@@ -1,5 +1,11 @@
# Version history

## Version 1.10.1

### Bugfixes

- Fixes compatibility with pytest 7.2, broken due to a private import from
`py._path`.

## Version 1.10.0

Expand Down
4 changes: 2 additions & 2 deletions pytest_mypy_plugins/collect.py
Expand Up @@ -6,11 +6,11 @@
from typing import TYPE_CHECKING, Any, Dict, Iterator, List, Mapping, Optional, Set

import pkg_resources
import py.path
import pytest
import yaml
from _pytest.config.argparsing import Parser
from _pytest.nodes import Node
from py._path.local import LocalPath

from pytest_mypy_plugins import utils

Expand Down Expand Up @@ -151,7 +151,7 @@ def pytest_collect_file(file_path: pathlib.Path, parent: Node) -> Optional[YamlT

else:

def pytest_collect_file(path: LocalPath, parent: Node) -> Optional[YamlTestFile]: # type: ignore[misc]
def pytest_collect_file(path: py.path.local, parent: Node) -> Optional[YamlTestFile]: # type: ignore[misc]
if path.ext in {".yaml", ".yml"} and path.basename.startswith(("test-", "test_")):
return YamlTestFile.from_parent(parent, fspath=path)
return None
Expand Down

0 comments on commit 9952fbf

Please sign in to comment.