"""验证 wheel 元数据检查脚本,不构建 wheel 或安装运行时依赖。""" from __future__ import annotations import sys from pathlib import Path import tempfile import unittest import zipfile CLIENT_ROOT = Path(__file__).resolve().parents[1] sys.path.insert(0, str(CLIENT_ROOT / "scripts")) from verify_wheel_metadata import dependencies_from_requirements, verify_wheel_metadata class WheelMetadataTests(unittest.TestCase): def test_metadata_checker_accepts_dependencies_from_the_single_requirements_file(self) -> None: expected_dependencies = dependencies_from_requirements(CLIENT_ROOT / "requirements.txt") with tempfile.TemporaryDirectory() as directory: wheel_file = Path(directory) / "cmbuyer_client-0.1.0-py3-none-any.whl" metadata = "Metadata-Version: 2.3\n" + "".join( f"Requires-Dist: {dependency}\n" for dependency in sorted(expected_dependencies) ) with zipfile.ZipFile(wheel_file, "w") as wheel: wheel.writestr("cmbuyer_client-0.1.0.dist-info/METADATA", metadata) self.assertEqual(set(), verify_wheel_metadata(wheel_file, CLIENT_ROOT / "requirements.txt"))