aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorBrian Harring <ferringb@gmail.com>2024-01-15 20:50:04 -0800
committerBrian Harring <ferringb@gmail.com>2024-01-23 00:52:08 -0800
commit6c1e1f997b0a99954f0eadd7898a368076fb0ea5 (patch)
treef26581b0365c62ee96d5c4ab76ccba0c1b99f49a /tests
parentrefactor: Add missing abstractmethods for ConfiguredTree. (diff)
downloadpkgcore-6c1e1f997b0a99954f0eadd7898a368076fb0ea5.tar.gz
pkgcore-6c1e1f997b0a99954f0eadd7898a368076fb0ea5.tar.bz2
pkgcore-6c1e1f997b0a99954f0eadd7898a368076fb0ea5.zip
fix filtered.tree.{categories,packages,versions} .
The implementation wasn't properly aliasing _get_* to the underlying raw_repo, and it should've been filtering packages and versions according to the filter. This adds that. This isn't a huge issue, but it breaks API guarantees for code tring to efficienctly access this sort of info for a repository stack. Signed-off-by: Brian Harring <ferringb@gmail.com>
Diffstat (limited to 'tests')
-rw-r--r--tests/repository/test_filtered.py22
1 files changed, 22 insertions, 0 deletions
diff --git a/tests/repository/test_filtered.py b/tests/repository/test_filtered.py
index 312e2528..7a04c21b 100644
--- a/tests/repository/test_filtered.py
+++ b/tests/repository/test_filtered.py
@@ -1,4 +1,5 @@
from pkgcore.ebuild.atom import atom
+from pkgcore.ebuild.restricts import CategoryDep
from pkgcore.ebuild.cpv import VersionedCPV
from pkgcore.repository import filtered
from pkgcore.repository.util import SimpleTree
@@ -57,3 +58,24 @@ class TestVisibility:
)
)
assert sorted(vrepo) == sorted(repo.itermatch(atom("dev-util/bsdiff")))
+
+ def test_categories_api(self):
+ # filter to just dev-util/diffball; this confirms that empty categories are filter,
+ # and that filtering of a package (leaving one in a category still) doesn't filter the category.
+ _, vrepo = self.setup_repos(
+ packages.OrRestriction(CategoryDep("dev-lib"), atom("dev-util/bsdiff"))
+ )
+ assert sorted(vrepo.categories) == sorted(
+ [
+ "dev-lib",
+ "dev-util",
+ ]
+ ), "category filtering must not filter dev-lib even if there are no packages left post filtering"
+
+ def test_packages_api(self):
+ _, vrepo = self.setup_repos(atom("dev-util/diffball"))
+ assert sorted(vrepo.packages["dev-util"]) == ["bsdiff"]
+
+ def test_versions_api(self):
+ _, vrepo = self.setup_repos(atom("=dev-util/diffball-1.0"))
+ assert sorted(vrepo.versions[("dev-util", "diffball")]) == ["0.7"]