|
7 | 7 | import inspect |
8 | 8 | import os |
9 | 9 | import pathlib |
10 | | -import shutil |
11 | 10 | import stat |
12 | 11 | import subprocess |
13 | 12 | import sys |
|
18 | 17 | import pytest |
19 | 18 | from jaraco import path |
20 | 19 | from packaging.tags import parse_tag |
21 | | -from packaging.utils import canonicalize_name |
22 | 20 |
|
23 | | -from pkg_resources import Distribution, PathMetadata |
| 21 | +from setuptools._importlib import metadata |
24 | 22 | from setuptools.wheel import Wheel |
25 | 23 |
|
26 | 24 | from .contexts import tempdir |
@@ -160,15 +158,13 @@ def _check_wheel_install( |
160 | 158 | exp = tree_set(install_dir) |
161 | 159 | assert install_tree.issubset(exp), install_tree - exp |
162 | 160 |
|
163 | | - metadata = PathMetadata(egg_path, os.path.join(egg_path, 'EGG-INFO')) |
164 | | - dist = Distribution.from_filename(egg_path, metadata=metadata) |
165 | | - assert dist.project_name == project_name |
166 | | - assert dist.version == version |
167 | | - if requires_txt is None: |
168 | | - assert not dist.has_metadata('requires.txt') |
169 | | - else: |
170 | | - # Order must match to ensure reproducibility. |
171 | | - assert requires_txt == dist.get_metadata('requires.txt').lstrip() |
| 161 | + (dist,) = metadata.Distribution.discover(path=[egg_path]) |
| 162 | + |
| 163 | + # pyright is nitpicky; fine to assume dist.metadata.__getitem__ will fail or return None |
| 164 | + # (https://github.com/pypa/setuptools/pull/5006#issuecomment-2894774288) |
| 165 | + assert dist.metadata['Name'] == project_name # pyright: ignore # noqa: PGH003 |
| 166 | + assert dist.metadata['Version'] == version # pyright: ignore # noqa: PGH003 |
| 167 | + assert dist.read_text('requires.txt') == requires_txt |
172 | 168 |
|
173 | 169 |
|
174 | 170 | class Record: |
@@ -407,7 +403,8 @@ def __repr__(self) -> str: |
407 | 403 | extras_require={ |
408 | 404 | 'extra': f'foobar; {sys.platform!r} != sys_platform', |
409 | 405 | }, |
410 | | - requires_txt=DALS( |
| 406 | + requires_txt='\n' |
| 407 | + + DALS( |
411 | 408 | """ |
412 | 409 | [extra] |
413 | 410 | """ |
@@ -579,28 +576,6 @@ def test_wheel_install(params): |
579 | 576 | ) |
580 | 577 |
|
581 | 578 |
|
582 | | -def test_wheel_install_pep_503(): |
583 | | - project_name = 'Foo_Bar' # PEP 503 canonicalized name is "foo-bar" |
584 | | - version = '1.0' |
585 | | - with ( |
586 | | - build_wheel( |
587 | | - name=project_name, |
588 | | - version=version, |
589 | | - ) as filename, |
590 | | - tempdir() as install_dir, |
591 | | - ): |
592 | | - new_filename = filename.replace(project_name, canonicalize_name(project_name)) |
593 | | - shutil.move(filename, new_filename) |
594 | | - _check_wheel_install( |
595 | | - new_filename, |
596 | | - install_dir, |
597 | | - None, |
598 | | - canonicalize_name(project_name), |
599 | | - version, |
600 | | - None, |
601 | | - ) |
602 | | - |
603 | | - |
604 | 579 | def test_wheel_no_dist_dir(): |
605 | 580 | project_name = 'nodistinfo' |
606 | 581 | version = '1.0' |
|
0 commit comments