3 from tempfile import NamedTemporaryFile, mktemp
5 from gentoolkit import query
6 from gentoolkit import errors
9 class TestQuery(unittest.TestCase):
18 # valid queries must have at least one ascii letter or '*'
26 for q in invalid_queries:
27 self.failUnlessRaises(errors.GentoolkitInvalidPackage,
31 q1 = query.Query('gentoolkit')
33 (q1.query, 'gentoolkit'),
35 (q1.repo_filter, None),
36 (q1.query_type, "simple")
39 self.failUnlessEqual(t[0], t[1])
41 q2 = query.Query('gentoolkit-.*', is_regex=True)
43 (q2.query, 'gentoolkit-.*'),
45 (q2.repo_filter, None),
46 (q2.query_type, "complex")
49 self.failUnlessEqual(t[0], t[1])
51 q3 = query.Query('*::gentoo')
55 (q3.repo_filter, 'gentoo'),
56 (q3.query_type, "complex")
59 self.failUnlessEqual(t[0], t[1])
61 q4 = query.Query('gcc:4.3')
63 (q4.query, 'gcc:4.3'),
65 (q4.repo_filter, None),
66 (q4.query_type, "simple")
69 self.failUnlessEqual(t[0], t[1])
71 q5 = query.Query('@system')
73 (q5.query, '@system'),
75 (q5.repo_filter, None),
76 (q5.query_type, "set")
79 self.failUnlessEqual(t[0], t[1])
81 def test_uses_globbing(self):
83 ('sys-apps/portage-2.1.6.13', False),
84 ('>=sys-apps/portage-2.1.6.13', False),
85 ('<=sys-apps/portage-2.1.6.13', False),
86 ('~sys-apps/portage-2.1.6.13', False),
87 ('=sys-apps/portage-2*', False),
88 ('sys-*/*-2.1.6.13', True),
89 ('sys-app?/portage-2.1.6.13', True),
90 ('sys-apps/[bp]ortage-2.1.6.13', True),
91 ('sys-apps/[!p]ortage*', True)
94 for gt in globbing_tests:
96 query.Query(gt[0]).uses_globbing() == gt[1]
101 suite = unittest.TestLoader().loadTestsFromTestCase(TestQuery)
102 unittest.TextTestRunner(verbosity=2).run(suite)
103 test_main.__test__ = False
106 if __name__ == '__main__':