|
2 | 2 |
|
3 | 3 | from __future__ import annotations |
4 | 4 |
|
5 | | -from textwrap import dedent |
6 | | - |
7 | | -from griffe import GriffeLoader, temporary_pypackage |
| 5 | +from griffe import temporary_visited_package |
8 | 6 |
|
9 | 7 |
|
10 | 8 | def test_dont_trigger_alias_resolution_when_merging_stubs() -> None: |
11 | 9 | """Assert that we don't trigger alias resolution when merging stubs.""" |
12 | | - with temporary_pypackage("package", ["mod.py", "mod.pyi"]) as tmp_package: |
13 | | - tmp_package.path.joinpath("mod.py").write_text( |
14 | | - dedent( |
15 | | - """ |
16 | | - import pathlib |
17 | | -
|
18 | | - def f() -> pathlib.Path: |
19 | | - return pathlib.Path() |
20 | | - """, |
21 | | - ), |
22 | | - ) |
23 | | - tmp_package.path.joinpath("mod.pyi").write_text( |
24 | | - dedent( |
25 | | - """ |
26 | | - import pathlib |
27 | | -
|
28 | | - def f() -> pathlib.Path: ... |
29 | | - """, |
30 | | - ), |
31 | | - ) |
32 | | - loader = GriffeLoader(search_paths=[tmp_package.tmpdir]) |
33 | | - loader.load(tmp_package.name) |
| 10 | + with temporary_visited_package( |
| 11 | + "package", |
| 12 | + { |
| 13 | + "mod.py": "import pathlib\n\ndef f() -> pathlib.Path:\n return pathlib.Path()", |
| 14 | + "mod.pyi": "import pathlib\n\ndef f() -> pathlib.Path: ...", |
| 15 | + }, |
| 16 | + ) as pkg: |
| 17 | + assert not pkg["mod.pathlib"].resolved |
34 | 18 |
|
35 | 19 |
|
36 | 20 | def test_merge_stubs_on_wildcard_imported_objects() -> None: |
37 | 21 | """Assert that stubs can be merged on wildcard imported objects.""" |
38 | | - with temporary_pypackage("package", ["mod.py", "__init__.pyi"]) as tmp_package: |
39 | | - tmp_package.path.joinpath("mod.py").write_text( |
40 | | - dedent( |
41 | | - """ |
42 | | - class A: |
43 | | - def hello(value: int | str) -> int | str: |
44 | | - return value |
45 | | - """, |
46 | | - ), |
47 | | - ) |
48 | | - tmp_package.path.joinpath("__init__.py").write_text("from .mod import *") |
49 | | - tmp_package.path.joinpath("__init__.pyi").write_text( |
50 | | - dedent( |
51 | | - """ |
| 22 | + with temporary_visited_package( |
| 23 | + "package", |
| 24 | + { |
| 25 | + "mod.py": "class A:\n def hello(value: int | str) -> int | str:\n return value", |
| 26 | + "__init__.py": "from .mod import *", |
| 27 | + "__init__.pyi": """ |
52 | 28 | from typing import overload |
53 | 29 | class A: |
54 | 30 | @overload |
55 | 31 | def hello(value: int) -> int: ... |
56 | 32 | @overload |
57 | 33 | def hello(value: str) -> str: ... |
58 | 34 | """, |
59 | | - ), |
60 | | - ) |
61 | | - loader = GriffeLoader(search_paths=[tmp_package.tmpdir]) |
62 | | - module = loader.load(tmp_package.name) |
63 | | - assert module["A.hello"].overloads |
| 35 | + }, |
| 36 | + ) as pkg: |
| 37 | + assert pkg["A.hello"].overloads |
| 38 | + |
0 commit comments