Files
cmbuyer/client/tests/test_wheel_metadata.py
T

30 lines
1.2 KiB
Python

"""验证 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"))