From 076758e2020501a105ca5905fb05df54430a1d98 Mon Sep 17 00:00:00 2001 From: Russell Keith-Magee Date: Wed, 30 Jul 2025 12:59:03 +0800 Subject: [PATCH] Restore pyroma test for iOS. --- .ci/requirements-cibw.txt | 2 +- Tests/test_pyroma.py | 24 +++++++++++++++++++++++- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/.ci/requirements-cibw.txt b/.ci/requirements-cibw.txt index e1eb52eb8..823671828 100644 --- a/.ci/requirements-cibw.txt +++ b/.ci/requirements-cibw.txt @@ -1 +1 @@ -cibuildwheel==3.0.1 +cibuildwheel==3.1.2 diff --git a/Tests/test_pyroma.py b/Tests/test_pyroma.py index c2f7fe22e..5fc246f72 100644 --- a/Tests/test_pyroma.py +++ b/Tests/test_pyroma.py @@ -1,5 +1,7 @@ from __future__ import annotations +from importlib.metadata import metadata + import pytest from PIL import __version__ @@ -7,9 +9,29 @@ 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. + + 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)