Test: Add dep/test_best_match_to_list
authorSebastian Luther <SebastianLuther@gmx.de>
Fri, 23 Jul 2010 13:21:05 +0000 (15:21 +0200)
committerZac Medico <zmedico@gentoo.org>
Fri, 23 Jul 2010 16:47:13 +0000 (09:47 -0700)
pym/portage/tests/dep/test_best_match_to_list.py [new file with mode: 0644]

diff --git a/pym/portage/tests/dep/test_best_match_to_list.py b/pym/portage/tests/dep/test_best_match_to_list.py
new file mode 100644 (file)
index 0000000..c5f4fbb
--- /dev/null
@@ -0,0 +1,43 @@
+# test_best_match_to_list.py -- Portage Unit Testing Functionality
+# Copyright 2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+from portage.tests import TestCase
+from portage.dep import Atom, best_match_to_list
+
+class Test_best_match_to_list(TestCase):
+
+       def best_match_to_list_wrapper(self, mypkg, mylist):
+               """
+               This function uses best_match_to_list to create sorted
+               list of matching atoms.
+               """
+               ret = []
+               while mylist:
+                       m = best_match_to_list(mypkg, mylist)
+                       if m is not None:
+                               ret.append(m)
+                               mylist.remove(m)
+                       else:
+                               break
+
+               return ret
+
+       def testBest_match_to_list(self):
+               tests = [
+                                       ("dev-libs/A-1", [Atom("dev-libs/A"), Atom("=dev-libs/A-1")], \
+                                               [Atom("=dev-libs/A-1"), Atom("dev-libs/A")]),
+                                       ("dev-libs/A-1", [Atom("dev-libs/B"), Atom("=dev-libs/A-1:0")], \
+                                               [Atom("=dev-libs/A-1:0")]),
+                                       ("dev-libs/A-1", [Atom("dev-libs/*", allow_wildcard=True), Atom("=dev-libs/A-1:0")], \
+                                               [Atom("=dev-libs/A-1:0"), Atom("dev-libs/*", allow_wildcard=True)]),
+                                       ("dev-libs/A-1", [Atom("*/*", allow_wildcard=True), Atom("dev-libs/*", allow_wildcard=True), \
+                                               Atom("dev-libs/A"), Atom("<=dev-libs/A-2"), Atom("dev-libs/A:0"), \
+                                               Atom("=dev-libs/A-1*"), Atom("~dev-libs/A-1"), Atom("=dev-libs/A-1")], \
+                                               [Atom("=dev-libs/A-1"), Atom("~dev-libs/A-1"), Atom("=dev-libs/A-1*"), \
+                                               Atom("dev-libs/A:0"), Atom("<=dev-libs/A-2"), Atom("dev-libs/A"), \
+                                               Atom("dev-libs/*", allow_wildcard=True), Atom("*/*", allow_wildcard=True)])
+                               ]
+
+               for pkg, atom_list, result in tests:
+                       self.assertEqual( self.best_match_to_list_wrapper( pkg, atom_list ), result )