Restore pyroma test for iOS (#9116)

Co-authored-by: Andrew Murray <radarhere@users.noreply.github.com>
This commit is contained in:
Russell Keith-Magee 2025-08-01 08:22:28 +08:00 committed by GitHub
parent 162836a004
commit 98d6c3bf88
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 30 additions and 3 deletions

View File

@ -317,4 +317,8 @@ int main(int argc, char* argv[])
assert process.returncode == 0
def teardown_method(self) -> None:
try:
os.remove("embed_pil.c")
except FileNotFoundError:
# If the test was skipped or failed, the file won't exist
pass

View File

@ -1,5 +1,7 @@
from __future__ import annotations
from importlib.metadata import metadata
import pytest
from PIL import __version__
@ -7,9 +9,30 @@ from PIL import __version__
pyroma = pytest.importorskip("pyroma", reason="Pyroma not installed")
def map_metadata_keys(metadata):
# Convert installed wheel metadata into canonical Core Metadata 2.4 format.
# This was a utility method in pyroma 4.3.3; it was removed in 5.0.
# This implementation is constructed from the relevant logic from
# Pyroma 5.0's `build_metadata()` implementation. This has been submitted
# upstream to Pyroma as https://github.com/regebro/pyroma/pull/116,
# so it may be possible to simplify this test in future.
data = {}
for key in set(metadata.keys()):
value = metadata.get_all(key)
key = pyroma.projectdata.normalize(key)
if len(value) == 1:
value = value[0]
if value.strip() == "UNKNOWN":
continue
data[key] = value
return data
def test_pyroma() -> None:
# Arrange
data = pyroma.projectdata.get_data(".")
data = map_metadata_keys(metadata("Pillow"))
# Act
rating = pyroma.ratings.rate(data)

View File

@ -68,7 +68,7 @@ optional-dependencies.tests = [
"markdown2",
"olefile",
"packaging",
"pyroma",
"pyroma>=5",
"pytest",
"pytest-cov",
"pytest-timeout",