Skip to content

Commit ef0bca8

Browse files
committed
Sort metadata fields in tests more rigorously
1 parent f27cebe commit ef0bca8

File tree

1 file changed

+68
-65
lines changed

1 file changed

+68
-65
lines changed

tests/test_package.py

Lines changed: 68 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -174,52 +174,51 @@ def test_package_safe_name_is_correct(pkg_name, expected_name):
174174
def test_supported_metadata_fields():
175175
"""Check that ``twine.package.PackageMetadata`` contains the expected fields."""
176176
assert set(package_file.PackageMetadata.__annotations__) == {
177-
# identify release
177+
# Metadata 1.0 - PEP 241
178+
"metadata_version",
178179
"name",
179180
"version",
180-
# file content
181-
"filetype",
182-
"pyversion",
183-
# additional meta-data
184-
"metadata_version",
181+
"platforms",
185182
"summary",
183+
"description",
184+
"keywords",
186185
"home_page",
187186
"author",
188187
"author_email",
189-
"maintainer",
190-
"maintainer_email",
191188
"license",
192-
"description",
193-
"keywords",
194-
"platforms",
195-
"classifiers",
196-
"download_url",
189+
# Metadata 1.1 - PEP 314
197190
"supported_platforms",
198-
"comment",
199-
"md5_digest",
200-
"sha256_digest",
201-
"blake2_256_digest",
202-
"gpg_signature",
203-
"attestations",
204-
# PEP 314
191+
"download_url",
192+
"classifiers",
205193
"provides",
206194
"requires",
207195
"obsoletes",
208-
# Metadata 1.2
209-
"project_urls",
196+
# Metadata 1.2 - PEP 345
197+
"maintainer",
198+
"maintainer_email",
199+
"requires_dist",
210200
"provides_dist",
211201
"obsoletes_dist",
212-
"requires_dist",
213-
"requires_external",
214202
"requires_python",
215-
# Metadata 2.1
216-
"provides_extra",
203+
"requires_external",
204+
"project_urls",
205+
# Metadata 2.1 - PEP 566
217206
"description_content_type",
218-
# Metadata 2.2
207+
"provides_extra",
208+
# Metadata 2.2 - PEP 643
219209
"dynamic",
220-
# Metadata 2.4
210+
# Metadata 2.4 - PEP 639
221211
"license_expression",
222212
"license_files",
213+
# additional meta-data
214+
"filetype",
215+
"pyversion",
216+
"comment",
217+
"md5_digest",
218+
"sha256_digest",
219+
"blake2_256_digest",
220+
"gpg_signature",
221+
"attestations",
223222
}
224223

225224

@@ -228,34 +227,36 @@ def test_supported_metadata_fields():
228227
def test_metadata_dictionary_values(gpg_signature, attestation):
229228
"""Pass values from pkginfo.Distribution through to dictionary."""
230229
meta = dict(
230+
metadata_version=pretend.stub(),
231231
name="whatever",
232232
version="1.2.3",
233-
metadata_version=pretend.stub(),
233+
platform=pretend.stub(),
234234
summary=pretend.stub(),
235+
description=pretend.stub(),
236+
keywords=pretend.stub(),
235237
home_page=pretend.stub(),
236238
author=pretend.stub(),
237239
author_email=pretend.stub(),
238-
maintainer=pretend.stub(),
239-
maintainer_email=pretend.stub(),
240240
license=pretend.stub(),
241-
description=pretend.stub(),
242-
keywords=pretend.stub(),
243-
platform=pretend.stub(),
244-
classifiers=pretend.stub(),
245-
download_url=pretend.stub(),
246241
supported_platform=pretend.stub(),
242+
download_url=pretend.stub(),
243+
classifiers=pretend.stub(),
247244
provides=pretend.stub(),
248245
requires=pretend.stub(),
249246
obsoletes=pretend.stub(),
250-
project_urls=pretend.stub(),
247+
maintainer=pretend.stub(),
248+
maintainer_email=pretend.stub(),
249+
requires_dist=pretend.stub(),
251250
provides_dist=pretend.stub(),
252251
obsoletes_dist=pretend.stub(),
253-
requires_dist=pretend.stub(),
254-
requires_external=pretend.stub(),
255252
requires_python=pretend.stub(),
256-
provides_extra=pretend.stub(),
253+
requires_external=pretend.stub(),
254+
project_urls=pretend.stub(),
257255
description_content_type=pretend.stub(),
256+
provides_extra=pretend.stub(),
258257
dynamic=pretend.stub(),
258+
license_expression=pretend.stub(),
259+
license_files=pretend.stub(),
259260
)
260261

261262
package = package_file.PackageFile(
@@ -271,51 +272,53 @@ def test_metadata_dictionary_values(gpg_signature, attestation):
271272

272273
result = package.metadata_dictionary()
273274

274-
# identify release
275+
# Medata 1.0 - PEP 241
276+
assert result["metadata_version"] == meta["metadata_version"]
275277
assert result["name"] == package.safe_name
276278
assert result["version"] == package.version == meta["version"]
277-
278-
# file content
279-
assert result["filetype"] == package.filetype
280-
assert result["pyversion"] == package.python_version
281-
282-
# additional meta-data
283-
assert result["metadata_version"] == meta["metadata_version"]
279+
assert result["platform"] == meta["platform"]
284280
assert result["summary"] == meta["summary"]
281+
assert result["description"] == meta["description"]
282+
assert result["keywords"] == meta["keywords"]
285283
assert result["home_page"] == meta["home_page"]
286284
assert result["author"] == meta["author"]
287285
assert result["author_email"] == meta["author_email"]
288-
assert result["maintainer"] == meta["maintainer"]
289-
assert result["maintainer_email"] == meta["maintainer_email"]
290286
assert result["license"] == meta["license"]
291-
assert result["description"] == meta["description"]
292-
assert result["keywords"] == meta["keywords"]
293-
assert result["platform"] == meta["platform"]
294-
assert result["classifiers"] == meta["classifiers"]
295-
assert result["download_url"] == meta["download_url"]
296-
assert result["supported_platform"] == meta["supported_platform"]
297-
assert result["comment"] == package.comment
298287

299-
# PEP 314
288+
# Metadata 1.1 - PEP 314
289+
assert result["supported_platform"] == meta["supported_platform"]
290+
assert result["download_url"] == meta["download_url"]
291+
assert result["classifiers"] == meta["classifiers"]
300292
assert result["provides"] == meta["provides"]
301293
assert result["requires"] == meta["requires"]
302294
assert result["obsoletes"] == meta["obsoletes"]
303295

304-
# Metadata 1.2
305-
assert result["project_urls"] == meta["project_urls"]
296+
# Metadata 1.2 - PEP 345
297+
assert result["maintainer"] == meta["maintainer"]
298+
assert result["maintainer_email"] == meta["maintainer_email"]
299+
assert result["requires_dist"] == meta["requires_dist"]
306300
assert result["provides_dist"] == meta["provides_dist"]
307301
assert result["obsoletes_dist"] == meta["obsoletes_dist"]
308-
assert result["requires_dist"] == meta["requires_dist"]
309-
assert result["requires_external"] == meta["requires_external"]
310302
assert result["requires_python"] == meta["requires_python"]
303+
assert result["requires_external"] == meta["requires_external"]
304+
assert result["project_urls"] == meta["project_urls"]
311305

312-
# Metadata 2.1
313-
assert result["provides_extra"] == meta["provides_extra"]
306+
# Metadata 2.1 - PEP 566
314307
assert result["description_content_type"] == meta["description_content_type"]
308+
assert result["provides_extra"] == meta["provides_extra"]
315309

316-
# Metadata 2.2
310+
# Metadata 2.2 - PEP 643
317311
assert result["dynamic"] == meta["dynamic"]
318312

313+
# Metadata 2.4 - PEP 639
314+
assert result["license_expression"] == meta["license_expression"]
315+
assert result["license_files"] == meta["license_files"]
316+
317+
# Additional metadata.
318+
assert result["comment"] == package.comment
319+
assert result["filetype"] == package.filetype
320+
assert result["pyversion"] == package.python_version
321+
319322
# GPG signature
320323
assert result.get("gpg_signature") == gpg_signature
321324

0 commit comments

Comments
 (0)