@@ -337,23 +337,46 @@ def test_fips_metadata_excludes_md5_and_blake2(monkeypatch):
337337 assert "blake2_256_digest" not in mddict
338338
339339
340- def test_pkginfo_returns_no_metadata (monkeypatch ):
340+ @pytest .mark .parametrize (
341+ "read_data, missing_fields" ,
342+ [
343+ pytest .param (
344+ b"Metadata-Version: 2.3\n Name: test-package\n Version: 1.0.0\n " ,
345+ "Name, Version" ,
346+ id = "unsupported Metadata-Version" ,
347+ ),
348+ pytest .param (
349+ b"Metadata-Version: 2.2\n Name: UNKNOWN\n Version: UNKNOWN\n " ,
350+ "Name, Version" ,
351+ id = "missing Name and Version" ,
352+ ),
353+ pytest .param (
354+ b"Metadata-Version: 2.2\n Name: UNKNOWN\n Version: 1.0.0\n " ,
355+ "Name" ,
356+ id = "missing Name" ,
357+ ),
358+ pytest .param (
359+ b"Metadata-Version: 2.2\n Name: test-package\n Version: UNKNOWN\n " ,
360+ "Version" ,
361+ id = "missing Version" ,
362+ ),
363+ ],
364+ )
365+ def test_pkginfo_returns_no_metadata (read_data , missing_fields , monkeypatch ):
341366 """Raise an exception when pkginfo can't interpret the metadata.
342367
343368 This could be caused by a version number or format it doesn't support yet.
344369 """
345-
346- def EmptyDist (filename ):
347- return pretend .stub (name = None , version = None )
348-
349- monkeypatch .setattr (package_file , "DIST_TYPES" , {"bdist_wheel" : EmptyDist })
370+ monkeypatch .setattr (package_file .wheel .Wheel , "read" , lambda _ : read_data )
350371 filename = "tests/fixtures/twine-1.5.0-py2.py3-none-any.whl"
351372
352373 with pytest .raises (exceptions .InvalidDistribution ) as err :
353374 package_file .PackageFile .from_filename (filename , comment = None )
354375
355- assert "Invalid distribution metadata" in err .value .args [0 ]
356- assert "1.0, 1.1, 1.2, 2.0, 2.1, and 2.2" in err .value .args [0 ]
376+ assert (
377+ f"Metadata is missing required fields: { missing_fields } ." in err .value .args [0 ]
378+ )
379+ assert "1.0, 1.1, 1.2, 2.0, 2.1, 2.2" in err .value .args [0 ]
357380
358381
359382def test_malformed_from_file (monkeypatch ):
0 commit comments