45 lines
1.7 KiB
Python
45 lines
1.7 KiB
Python
from __future__ import annotations
|
|
|
|
import importlib.util
|
|
from pathlib import Path
|
|
import sys
|
|
import unittest
|
|
|
|
|
|
META_ROOT = Path(__file__).resolve().parents[1]
|
|
TOOLS_ROOT = META_ROOT / "tools" / "gitea"
|
|
if str(TOOLS_ROOT) not in sys.path:
|
|
sys.path.insert(0, str(TOOLS_ROOT))
|
|
SCRIPT = TOOLS_ROOT / "gitea-dispatch-package-set.py"
|
|
SPEC = importlib.util.spec_from_file_location("gitea_dispatch_package_set", SCRIPT)
|
|
assert SPEC is not None and SPEC.loader is not None
|
|
MODULE = importlib.util.module_from_spec(SPEC)
|
|
sys.modules[SPEC.name] = MODULE
|
|
SPEC.loader.exec_module(MODULE)
|
|
|
|
|
|
class PackageSetDispatchTests(unittest.TestCase):
|
|
def test_meta_package_resolves_to_exact_tagged_repository_targets(self) -> None:
|
|
targets = MODULE.package_targets()
|
|
|
|
self.assertEqual(73, len(targets))
|
|
self.assertEqual(73, len({target.distribution for target in targets}))
|
|
by_name = {target.distribution: target for target in targets}
|
|
self.assertEqual("v0.1.38", by_name["govoplan-core"].tag)
|
|
self.assertEqual("v0.1.22", by_name["govoplan-access"].tag)
|
|
self.assertEqual("v0.1.20", by_name["govoplan-dms"].tag)
|
|
self.assertEqual("v0.1.20", by_name["govoplan-erp"].tag)
|
|
self.assertEqual("v0.1.20", by_name["govoplan-fit-connect"].tag)
|
|
self.assertEqual("v0.1.23", by_name["govoplan-idm"].tag)
|
|
self.assertEqual("v0.1.21", by_name["govoplan-xrechnung"].tag)
|
|
self.assertTrue(by_name["govoplan-core"].tag_exists)
|
|
self.assertTrue(by_name["govoplan-access"].has_webui)
|
|
self.assertEqual(
|
|
"@govoplan/access-webui",
|
|
by_name["govoplan-access"].webui_package,
|
|
)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|