diff --git a/tests/test_module_system.py b/tests/test_module_system.py index 7392084..4ba37d0 100644 --- a/tests/test_module_system.py +++ b/tests/test_module_system.py @@ -6,6 +6,7 @@ import base64 import json import os import re +import runpy import shlex import shutil import stat @@ -3079,27 +3080,21 @@ finally: self.assertEqual("stable", validation["channel"]) def test_release_catalog_generator_reads_manifest_interface_contracts(self) -> None: - root = Path(tempfile.mkdtemp(prefix="govoplan-release-catalog-generator-", dir=_TEST_ROOT)) - catalog_path = root / "catalog.json" - - result = subprocess.run( - [ - sys.executable, - str(Path(__file__).resolve().parents[2] / "govoplan" / "tools" / "generate-release-catalog.py"), - "--version", - "0.1.7", - "--catalog-output", - str(catalog_path), - ], - cwd=str(Path(__file__).resolve().parents[1]), - env={**os.environ.copy(), "GOVOPLAN_CORE_ROOT": str(Path(__file__).resolve().parents[1])}, - text=True, - capture_output=True, - check=False, + generator = runpy.run_path( + str(Path(__file__).resolve().parents[2] / "govoplan" / "tools" / "release" / "generate-release-catalog.py"), + run_name="govoplan_release_catalog_contract_test", + ) + generated_at = generator["datetime"].now(tz=generator["UTC"]) + catalog = generator["_catalog_payload"]( + version="0.1.9", + tag="v0.1.9", + channel="test", + sequence=1, + generated_at=generated_at, + expires_at=generated_at + generator["timedelta"](days=1), + repository_base="git+ssh://git@example.test/add-ideas", + public_base_url="https://example.test", ) - - self.assertEqual(0, result.returncode, result.stderr) - catalog = json.loads(catalog_path.read_text(encoding="utf-8")) modules = {item["module_id"]: item for item in catalog["modules"]} self.assertIn({"name": "files.campaign_attachments", "version": "0.1.6"}, modules["files"]["provides_interfaces"])