test_best_match_to_list: test all permutations v2.2.0_alpha61
authorZac Medico <zmedico@gentoo.org>
Wed, 5 Oct 2011 16:11:13 +0000 (09:11 -0700)
committerZac Medico <zmedico@gentoo.org>
Wed, 5 Oct 2011 16:11:13 +0000 (09:11 -0700)
pym/portage/tests/dep/test_best_match_to_list.py

index 9cf5abdd565a5668bd4f9515d63d53f00277ada4..58ab95b0fa7ac428a4548ad4b1d820927fd5a81c 100644 (file)
@@ -1,7 +1,9 @@
 # test_best_match_to_list.py -- Portage Unit Testing Functionality
-# Copyright 2010 Gentoo Foundation
+# Copyright 2010-2011 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
+from itertools import permutations
+
 from portage.tests import TestCase
 from portage.dep import Atom, best_match_to_list
 
@@ -13,6 +15,7 @@ class Test_best_match_to_list(TestCase):
                list of matching atoms.
                """
                ret = []
+               mylist = list(mylist)
                while mylist:
                        m = best_match_to_list(mypkg, mylist)
                        if m is not None:
@@ -26,22 +29,29 @@ class Test_best_match_to_list(TestCase):
        def testBest_match_to_list(self):
                tests = [
                                        ("dev-libs/A-4", [Atom(">=dev-libs/A-3"), Atom(">=dev-libs/A-2")], \
-                                               [Atom(">=dev-libs/A-3"), Atom(">=dev-libs/A-2")]),
+                                               [Atom(">=dev-libs/A-3"), Atom(">=dev-libs/A-2")], True),
                                        ("dev-libs/A-4", [Atom("<=dev-libs/A-5"), Atom("<=dev-libs/A-6")], \
-                                               [Atom("<=dev-libs/A-5"), Atom("<=dev-libs/A-6")]),
+                                               [Atom("<=dev-libs/A-5"), Atom("<=dev-libs/A-6")], True),
                                        ("dev-libs/A-1", [Atom("dev-libs/A"), Atom("=dev-libs/A-1")], \
-                                               [Atom("=dev-libs/A-1"), Atom("dev-libs/A")]),
+                                               [Atom("=dev-libs/A-1"), Atom("dev-libs/A")], True),
                                        ("dev-libs/A-1", [Atom("dev-libs/B"), Atom("=dev-libs/A-1:0")], \
-                                               [Atom("=dev-libs/A-1:0")]),
+                                               [Atom("=dev-libs/A-1:0")], True),
                                        ("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)]),
+                                               [Atom("=dev-libs/A-1:0"), Atom("dev-libs/*", allow_wildcard=True)], True),
                                        ("dev-libs/A-1:0", [Atom("dev-*/*", allow_wildcard=True), Atom("dev-*/*:0", 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-*/*:0", allow_wildcard=True), Atom("dev-*/*", allow_wildcard=True)])
+                                               Atom("dev-*/*:0", allow_wildcard=True), Atom("dev-*/*", allow_wildcard=True)], False)
                                ]
 
-               for pkg, atom_list, result in tests:
-                       self.assertEqual( self.best_match_to_list_wrapper( pkg, atom_list ), result )
+               for pkg, atom_list, result, all_permutations in tests:
+                       if all_permutations:
+                               atom_lists = permutations(atom_list)
+                       else:
+                               atom_lists = [atom_list]
+                       for atom_list in atom_lists:
+                               self.assertEqual(
+                                       self.best_match_to_list_wrapper(pkg, atom_list),
+                                       result)