|
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