3 from tempfile import NamedTemporaryFile, mktemp
5 from test import test_support
7 from test import support as test_support
11 from gentoolkit import query
12 from gentoolkit import errors
15 class TestQuery(unittest.TestCase):
24 # valid queries must have at least one ascii letter or '*'
32 for q in invalid_queries:
33 self.failUnlessRaises(errors.GentoolkitInvalidPackage,
37 q1 = query.Query('gentoolkit')
39 (q1.query, 'gentoolkit'),
41 (q1.repo_filter, None),
42 (q1.query_type, "simple")
45 self.failUnlessEqual(t[0], t[1])
47 q2 = query.Query('gentoolkit-.*', is_regex=True)
49 (q2.query, 'gentoolkit-.*'),
51 (q2.repo_filter, None),
52 (q2.query_type, "complex")
55 self.failUnlessEqual(t[0], t[1])
57 q3 = query.Query('*::gentoo')
61 (q3.repo_filter, 'gentoo'),
62 (q3.query_type, "complex")
65 self.failUnlessEqual(t[0], t[1])
67 q4 = query.Query('gcc:4.3')
69 (q4.query, 'gcc:4.3'),
71 (q4.repo_filter, None),
72 (q4.query_type, "simple")
75 self.failUnlessEqual(t[0], t[1])
77 q5 = query.Query('@system')
79 (q5.query, '@system'),
81 (q5.repo_filter, None),
82 (q5.query_type, "set")
85 self.failUnlessEqual(t[0], t[1])
87 def test_uses_globbing(self):
89 ('sys-apps/portage-2.1.6.13', False),
90 ('>=sys-apps/portage-2.1.6.13', False),
91 ('<=sys-apps/portage-2.1.6.13', False),
92 ('~sys-apps/portage-2.1.6.13', False),
93 ('=sys-apps/portage-2*', False),
94 ('sys-*/*-2.1.6.13', True),
95 ('sys-app?/portage-2.1.6.13', True),
96 ('sys-apps/[bp]ortage-2.1.6.13', True),
97 ('sys-apps/[!p]ortage*', True)
100 for gt in globbing_tests:
102 query.Query(gt[0]).uses_globbing() == gt[1]
107 test_support.run_unittest(TestGentoolkitHelpers2)
110 if __name__ == '__main__':