1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
|
import unittest
from gentoolkit import query
from gentoolkit import errors
class TestQuery(unittest.TestCase):
def setUp(self):
pass
def tearDown(self):
pass
def test_init(self):
# valid queries must have at least one ascii letter or digit or
# '*'
invalid_queries = [
'',
'/',
]
for q in invalid_queries:
self.assertRaises(errors.GentoolkitInvalidPackage,
query.Query, q
)
q1 = query.Query('gentoolkit')
q1_tests = [
(q1.query, 'gentoolkit'),
(q1.is_regex, False),
(q1.repo_filter, None),
(q1.query_type, "simple")
]
for t in q1_tests:
self.assertEqual(t[0], t[1])
q2 = query.Query('gentoolkit-.*', is_regex=True)
q2_tests = [
(q2.query, 'gentoolkit-.*'),
(q2.is_regex, True),
(q2.repo_filter, None),
(q2.query_type, "complex")
]
for t in q2_tests:
self.assertEqual(t[0], t[1])
q3 = query.Query('*::gentoo')
q3_tests = [
(q3.query, '*'),
(q3.is_regex, False),
(q3.repo_filter, 'gentoo'),
(q3.query_type, "complex")
]
for t in q3_tests:
self.assertEqual(t[0], t[1])
q4 = query.Query('gcc:4.3')
q4_tests = [
(q4.query, 'gcc:4.3'),
(q4.is_regex, False),
(q4.repo_filter, None),
(q4.query_type, "simple")
]
for t in q4_tests:
self.assertEqual(t[0], t[1])
q5 = query.Query('@system')
q5_tests = [
(q5.query, '@system'),
(q5.is_regex, False),
(q5.repo_filter, None),
(q5.query_type, "set")
]
for t in q5_tests:
self.assertEqual(t[0], t[1])
def test_uses_globbing(self):
globbing_tests = [
('sys-apps/portage-2.1.6.13', False),
('>=sys-apps/portage-2.1.6.13', False),
('<=sys-apps/portage-2.1.6.13', False),
('~sys-apps/portage-2.1.6.13', False),
('=sys-apps/portage-2*', False),
('sys-*/*-2.1.6.13', True),
('sys-app?/portage-2.1.6.13', True),
('sys-apps/[bp]ortage-2.1.6.13', True),
('sys-apps/[!p]ortage*', True)
]
for gt in globbing_tests:
self.assertTrue(
query.Query(gt[0]).uses_globbing() == gt[1]
)
def test_main():
suite = unittest.TestLoader().loadTestsFromTestCase(TestQuery)
unittest.TextTestRunner(verbosity=2).run(suite)
test_main.__test__ = False
if __name__ == '__main__':
test_main()
|