repoman: test package.use.stable.mask
authorZac Medico <zmedico@gentoo.org>
Thu, 13 Sep 2012 19:37:28 +0000 (12:37 -0700)
committerZac Medico <zmedico@gentoo.org>
Thu, 13 Sep 2012 19:37:28 +0000 (12:37 -0700)
pym/portage/tests/repoman/test_simple.py
pym/portage/tests/resolver/ResolverPlayground.py

index eab06d9b8145c3f7a83538d99f1f5a4dc212503b..639ec31ea42092bf76f9e7503189f2dc3532bbd5 100644 (file)
@@ -78,7 +78,22 @@ class SimpleRepomanTestCase(TestCase):
                        ("x86", "default/linux/x86/test_profile", "stable"),
                )
 
+               profile = {
+                       "eapi": ("5_pre2",),
+                       "package.use.stable.mask": ("dev-libs/A flag",)
+               }
+
                ebuilds = {
+                       "dev-libs/A-0": {
+                               "COPYRIGHT_HEADER" : copyright_header,
+                               "DESCRIPTION" : "Desc goes here",
+                               "EAPI" : "5_pre2",
+                               "HOMEPAGE" : "http://example.com",
+                               "IUSE" : "flag",
+                               "KEYWORDS": "x86",
+                               "LICENSE": "GPL-2",
+                               "RDEPEND": "flag? ( dev-libs/B[flag] )",
+                       },
                        "dev-libs/A-1": {
                                "COPYRIGHT_HEADER" : copyright_header,
                                "DESCRIPTION" : "Desc goes here",
@@ -98,6 +113,17 @@ class SimpleRepomanTestCase(TestCase):
                                "KEYWORDS": "~x86",
                                "LICENSE": "GPL-2",
                        },
+                       "dev-libs/C-0": {
+                               "COPYRIGHT_HEADER" : copyright_header,
+                               "DESCRIPTION" : "Desc goes here",
+                               "EAPI" : "4",
+                               "HOMEPAGE" : "http://example.com",
+                               "IUSE" : "flag",
+                               # must be unstable, since dev-libs/A[flag] is stable masked
+                               "KEYWORDS": "~x86",
+                               "LICENSE": "GPL-2",
+                               "RDEPEND": "flag? ( dev-libs/A[flag] )",
+                       },
                }
                licenses = ["GPL-2"]
                arch_list = ["x86"]
@@ -117,6 +143,13 @@ class SimpleRepomanTestCase(TestCase):
                                        "flags" : "<flag name='flag'>Description of how USE='flag' affects this package</flag>",
                                },
                        ),
+                       (
+                               "dev-libs/C",
+                               {
+                                       "herd" : "no-herd",
+                                       "flags" : "<flag name='flag'>Description of how USE='flag' affects this package</flag>",
+                               },
+                       ),
                )
 
                use_desc = (
@@ -124,7 +157,7 @@ class SimpleRepomanTestCase(TestCase):
                )
 
                playground = ResolverPlayground(ebuilds=ebuilds,
-                       repo_configs=repo_configs, debug=debug)
+                       profile=profile, repo_configs=repo_configs, debug=debug)
                settings = playground.settings
                eprefix = settings["EPREFIX"]
                eroot = settings["EROOT"]
index 0ac209761a8296f84fc0c3b3ad444331376c64ae..324ef9dd782c33a91b4f570688a025f275d3683c 100644 (file)
@@ -34,7 +34,8 @@ class ResolverPlayground(object):
        its work.
        """
 
-       config_files = frozenset(("package.accept_keywords", "package.use", "package.mask", "package.keywords", \
+       config_files = frozenset(("eapi", "package.accept_keywords", "package.use",
+               "package.use.stable.mask", "package.mask", "package.keywords",
                "package.unmask", "package.properties", "package.license", "use.mask", "use.force",
                "layout.conf",))
 
@@ -344,10 +345,11 @@ class ResolverPlayground(object):
                                sub_profile_dir = os.path.join(profile_dir, "default", "linux", "x86", "test_profile")
                                os.makedirs(sub_profile_dir)
 
-                               eapi_file = os.path.join(sub_profile_dir, "eapi")
-                               f = open(eapi_file, "w")
-                               f.write("0\n")
-                               f.close()
+                               if not (profile and "eapi" in profile):
+                                       eapi_file = os.path.join(sub_profile_dir, "eapi")
+                                       f = open(eapi_file, "w")
+                                       f.write("0\n")
+                                       f.close()
 
                                make_defaults_file = os.path.join(sub_profile_dir, "make.defaults")
                                f = open(make_defaults_file, "w")