From e98b7ff4abb12dadf0670fd9937c6a84ff91c6eb Mon Sep 17 00:00:00 2001 From: Evgenii Alekseev Date: Tue, 17 Sep 2024 03:33:25 +0300 Subject: [PATCH] allow packages without package function --- src/ahriman/models/pkgbuild.py | 2 +- tests/ahriman/models/test_pkgbuild.py | 12 ++++++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/ahriman/models/pkgbuild.py b/src/ahriman/models/pkgbuild.py index 173b8107..559b0358 100644 --- a/src/ahriman/models/pkgbuild.py +++ b/src/ahriman/models/pkgbuild.py @@ -100,7 +100,7 @@ class Pkgbuild(Mapping[str, Any]): def io(package_name: str) -> IO[str]: # try to read package specific function and fallback to default otherwise - content = self.get(f"package_{package_name}") or self["package"] + content = self.get(f"package_{package_name}") or self.get("package") or "" return StringIO(content) return {package: self.from_io(io(package)) for package in packages} diff --git a/tests/ahriman/models/test_pkgbuild.py b/tests/ahriman/models/test_pkgbuild.py index 5cdb0bc5..e77c0429 100644 --- a/tests/ahriman/models/test_pkgbuild.py +++ b/tests/ahriman/models/test_pkgbuild.py @@ -66,14 +66,14 @@ def test_from_io_empty(pkgbuild_ahriman: Pkgbuild, mocker: MockerFixture) -> Non def test_packages(pkgbuild_ahriman: Pkgbuild) -> None: """ - must correctly generate load package function + must correctly load package function """ assert pkgbuild_ahriman.packages() == {pkgbuild_ahriman["pkgbase"]: Pkgbuild({})} def test_packages_multi(resource_path_root: Path) -> None: """ - must correctly generate load list of package functions + must correctly load list of package functions """ pkgbuild = Pkgbuild.from_file(resource_path_root / "models" / "package_gcc10_pkgbuild") packages = pkgbuild.packages() @@ -83,6 +83,14 @@ def test_packages_multi(resource_path_root: Path) -> None: assert all("depends" in package for package in packages.values()) +def test_packages_empty(pkgbuild_ahriman: Pkgbuild) -> None: + """ + must correctly load packages without package functionn + """ + del pkgbuild_ahriman.fields["package()"] + assert pkgbuild_ahriman.packages() == {pkgbuild_ahriman["pkgbase"]: Pkgbuild({})} + + def test_getitem(pkgbuild_ahriman: Pkgbuild) -> None: """ must return element by key