Skip to content

Commit

Permalink
Fix compatibility with pytest 7.2 (#106)
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 e212be4
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 e212be4

Please sign in to comment.