This commit is contained in:
Mateusz Gruszczyński committed 2026-10-30 13:11:36 +01:00
1 parent 0efaae1715
commit c1a2a8cc30
13 files changed
+180 -137

No files matched your search

+19 -4
View File
@@ -15,20 +15,35 @@ def test_package_filename_parsing():
assert app.parse_package(Path("rustbox-0.0.5-1.x86_64.rpm"), "rpm") == ("rustbox", "0.0.5-1", "x86_64")
def test_catalog_reads_linux_snapshot():
def test_catalog_uses_three_linux_distribution_families():
with tempfile.TemporaryDirectory() as tmp:
root = Path(tmp)
rel = root / "releases/one"
(rel / "apt/pool/main/r/rustbox").mkdir(parents=True)
(rel / "rpm/x86_64").mkdir(parents=True)
(rel / "suse/x86_64").mkdir(parents=True)
(rel / "LINUX-BUILD-INFO.txt").write_text("app_version=0.0.5\npackage_release=1\nbuilt_at=2026-10-30T12:00:00Z\nsource_commit=abc\npackaging_revision=1\n")
(rel / "SUSE-BUILD-INFO.txt").write_text("app_version=0.0.5\npackage_release=1\nbuilt_at=2026-10-30T12:00:00Z\nsource_commit=abc\npackaging_revision=1\n")
common = "app_version=0.0.5\npackage_release=1\nbuilt_at=2026-10-30T12:00:00Z\nsource_commit=abc\npackaging_revision=1\n"
(rel / "DEBIAN-BUILD-INFO.txt").write_text(common + "package_family=debian\n")
(rel / "RHEL-BUILD-INFO.txt").write_text(common + "package_family=rhel\n")
(rel / "SUSE-BUILD-INFO.txt").write_text(common + "package_family=suse\n")
(rel / "apt/pool/main/r/rustbox/rustbox_0.0.5-1_amd64.deb").write_bytes(b"deb")
(rel / "rpm/x86_64/rustbox-0.0.5-1.x86_64.rpm").write_bytes(b"rpm")
(rel / "suse/x86_64/rustbox-0.0.5-1.x86_64.rpm").write_bytes(b"rpm")
(root / "current").symlink_to("releases/one")
catalog = app.generate_catalog(root)
assert catalog["ready"] is True
assert catalog["builds"]["linux"]["app_version"] == "0.0.5"
assert set(catalog["builds"]) == {"debian", "rhel", "suse"}
assert catalog["builds"]["debian"]["app_version"] == "0.0.5"
assert {pkg["channel"] for pkg in catalog["packages"]} == {"debian", "rhel", "suse"}
assert len(catalog["packages"]) == 3
def test_dashboard_is_english_text_only():
html = (ROOT / "dashboard/web/index.html").read_text()
js = (ROOT / "dashboard/web/app.js").read_text()
assert 'lang="en"' in html
assert "brand-icon" not in html
assert "favicon" not in html
assert "status-dot" not in html
for label in ("Overview", "Packages", "Installation", "Repositories", "Debian / Ubuntu", "RHEL / AlmaLinux / Rocky Linux", "SUSE / openSUSE"):
assert label in html or label in js