Skip to content

Commit faba6b3

Browse files
committed
tests: unit tests for PackageSet.isEmpty() and WildcardPackageSet
Signed-off-by: Jethro Donaldson <[email protected]>
1 parent 9d33a38 commit faba6b3

File tree

2 files changed

+43
-2
lines changed

2 files changed

+43
-2
lines changed

lib/portage/tests/sets/base/test_internal_package_set.py

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
# testConfigFileSet.py -- Portage Unit Testing Functionality
2-
# Copyright 2010 Gentoo Foundation
1+
# Copyright 2010-2025 Gentoo Authors
32
# Distributed under the terms of the GNU General Public License v2
43

54
from portage.dep import Atom
@@ -14,13 +13,20 @@ class InternalPackageSetTestCase(TestCase):
1413
def testInternalPackageSet(self):
1514
i1_atoms = {"dev-libs/A", ">=dev-libs/A-1", "dev-libs/B"}
1615
i2_atoms = {"dev-libs/A", "dev-libs/*", "dev-libs/C"}
16+
i3_sets = {"@world", "@installed", "@system"}
1717

1818
i1 = InternalPackageSet(initial_atoms=i1_atoms)
1919
i2 = InternalPackageSet(initial_atoms=i2_atoms, allow_wildcard=True)
20+
i3 = InternalPackageSet(initial_atoms=i3_sets)
2021
self.assertRaises(InvalidAtom, InternalPackageSet, initial_atoms=i2_atoms)
2122

23+
self.assertFalse(i1.isEmpty())
24+
self.assertFalse(i2.isEmpty())
25+
self.assertFalse(i3.isEmpty())
26+
2227
self.assertEqual(i1.getAtoms(), i1_atoms)
2328
self.assertEqual(i2.getAtoms(), i2_atoms)
29+
self.assertEqual(i3.getNonAtoms(), i3_sets)
2430

2531
new_atom = Atom("*/*", allow_wildcard=True)
2632
self.assertRaises(InvalidAtom, i1.add, new_atom)
@@ -60,3 +66,8 @@ def testInternalPackageSet(self):
6066
i2_atoms = set(replace_atoms)
6167

6268
self.assertEqual(i2.getAtoms(), i2_atoms)
69+
70+
i2.clear()
71+
self.assertEqual(i2.getAtoms(), set())
72+
self.assertEqual(i2.getNonAtoms(), set())
73+
self.assertTrue(i2.isEmpty())
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# Copyright 2025 Gentoo Authors
2+
# Distributed under the terms of the GNU General Public License v2
3+
4+
from portage.dep import Atom
5+
from portage.exception import InvalidAtom
6+
from portage.tests import TestCase
7+
from portage._sets.base import WildcardPackageSet
8+
9+
10+
class WildcardPackageSetTestcase(TestCase):
11+
"""Test case for WildcardPackageSet"""
12+
13+
def testWildcardPackageSet(self):
14+
ambig_atoms = {"A", "B", "C"}
15+
norm_atoms = {"dev-libs/A", ">=dev-libs/A-1"}
16+
wild_atoms = {"dev-libs/*", "*/B"}
17+
sets = {"@world", "@installed", "@system"}
18+
19+
w1 = WildcardPackageSet(initial_atoms=norm_atoms)
20+
w2 = WildcardPackageSet(initial_atoms=wild_atoms)
21+
self.assertRaises(InvalidAtom, WildcardPackageSet, initial_atoms=sets)
22+
23+
self.assertEqual(w1.getAtoms(), norm_atoms)
24+
self.assertEqual(w2.getAtoms(), wild_atoms)
25+
26+
w3 = WildcardPackageSet(initial_atoms=ambig_atoms)
27+
self.assertEqual(w3.getAtoms(), {"*/" + a for a in ambig_atoms})
28+
29+
w4 = WildcardPackageSet(initial_atoms=(Atom(a) for a in norm_atoms))
30+
self.assertEqual(w4.getAtoms(), norm_atoms)

0 commit comments

Comments
 (0)