Skip to content

Commit 312e75c

Browse files
committed
inspection: error on unsupported metadata versions
Resolves: #9195
1 parent 76fe51a commit 312e75c

File tree

3 files changed

+19
-0
lines changed

3 files changed

+19
-0
lines changed

src/poetry/inspection/info.py

+5
Original file line numberDiff line numberDiff line change
@@ -266,6 +266,11 @@ def _from_distribution(
266266
267267
:param dist: The distribution instance to parse information from.
268268
"""
269+
if dist.metadata_version not in pkginfo.distribution.HEADER_ATTRS:
270+
# This check can be replaced once upstream implements strict parsing
271+
# https://bugs.launchpad.net/pkginfo/+bug/2058697
272+
raise ValueError("Unknown metadata version")
273+
269274
requirements = cls._requirements_from_distribution(dist)
270275

271276
info = cls(

tests/inspection/test_info.py

+14
Original file line numberDiff line numberDiff line change
@@ -199,6 +199,20 @@ def test_info_from_wheel_metadata_version_23(fixture_dir: FixtureDirGetter) -> N
199199
assert info._source_url == path.resolve().as_posix()
200200

201201

202+
def test_info_from_wheel_metadata_version_unknown(
203+
fixture_dir: FixtureDirGetter,
204+
) -> None:
205+
path = (
206+
fixture_dir("distributions")
207+
/ "demo_metadata_version_unknown-0.1.0-py2.py3-none-any.whl"
208+
)
209+
210+
with pytest.raises(PackageInfoError) as e:
211+
PackageInfo.from_wheel(path)
212+
213+
assert "Unknown metadata version" in str(e.value)
214+
215+
202216
def test_info_from_wheel_metadata(demo_wheel_metadata: RawMetadata) -> None:
203217
info = PackageInfo.from_metadata(demo_wheel_metadata)
204218
demo_check_info(info)

0 commit comments

Comments
 (0)