test_multirepo: test for bug #351828
authorZac Medico <zmedico@gentoo.org>
Tue, 18 Jan 2011 23:24:43 +0000 (15:24 -0800)
committerZac Medico <zmedico@gentoo.org>
Tue, 18 Jan 2011 23:24:43 +0000 (15:24 -0800)
pym/portage/tests/resolver/test_multirepo.py

index e5d6bdf0d94f52e1c64470b064012585ec671d5c..542bdd5949c4c44c8a38f9bdf1cbe0a050679431 100644 (file)
@@ -31,8 +31,19 @@ class MultirepoTestCase(TestCase):
 
                        "dev-libs/G-1::repo1": { "EAPI" : "4", "IUSE":"+x +y", "REQUIRED_USE" : "" },
                        "dev-libs/G-1::repo2": { "EAPI" : "4", "IUSE":"+x +y", "REQUIRED_USE" : "^^ ( x y )" },
+
+                       "dev-libs/H-1": {       "KEYWORDS": "x86", "EAPI" : "3",
+                                                               "RDEPEND" : "|| ( dev-libs/I:2 dev-libs/I:1 )" },
+
+                       "dev-libs/I-1::repo2": { "SLOT" : "1"},
+                       "dev-libs/I-2::repo2": { "SLOT" : "2"},
                        }
-               
+
+               installed = {
+                       "dev-libs/H-1": { "RDEPEND" : "|| ( dev-libs/I:2 dev-libs/I:1 )"},
+                       "dev-libs/I-2::repo1": {"SLOT" : "2"},
+                       }
+
                sets = {
                        "multirepotest": 
                                ( "dev-libs/A::test_repo", )
@@ -117,6 +128,16 @@ class MultirepoTestCase(TestCase):
                                check_repo_names = True,
                                mergelist = ["dev-libs/F-1::repo1"]),
 
+                       # Dependency on installed dev-libs/C-2 ebuild for which ebuild is
+                       # not available from the same repo should not unnecessarily pull
+                       # in a different slot. It should just pull in the same slot from
+                       # a different repo (bug #351828).
+                       ResolverPlaygroundTestCase(
+                               ["dev-libs/H"],
+                               options = {"--update": True, "--deep": True},
+                               success = True,
+                               mergelist = ["dev-libs/I-2"]),
+
                        # Check interaction between repo priority and unsatisfied
                        # REQUIRED_USE, for bug #350254.
                        ResolverPlaygroundTestCase(
@@ -126,7 +147,8 @@ class MultirepoTestCase(TestCase):
 
                        )
 
-               playground = ResolverPlayground(ebuilds=ebuilds, sets=sets)
+               playground = ResolverPlayground(ebuilds=ebuilds,
+                       installed=installed, sets=sets)
                try:
                        for test_case in test_cases:
                                playground.run_TestCase(test_case)