Index: pym/portage/tests/resolver/test_rebuild.py |
diff --git a/pym/portage/tests/resolver/test_rebuild.py b/pym/portage/tests/resolver/test_rebuild.py |
new file mode 100644 |
index 0000000000000000000000000000000000000000..2185bf791634132d906c95c8e14096837ec22510 |
--- /dev/null |
+++ b/pym/portage/tests/resolver/test_rebuild.py |
@@ -0,0 +1,66 @@ |
+from portage.tests import TestCase |
+from portage.tests.resolver.ResolverPlayground import (ResolverPlayground, |
+ ResolverPlaygroundTestCase) |
+ |
+class RebuildTestCase(TestCase): |
+ |
+ def testRebuild(self): |
+ """ |
+ Rebuild packages when dependencies that are used at both build-time and |
+ run-time are upgraded. |
+ """ |
+ |
+ ebuilds = { |
+ "sys-libs/x-1": { }, |
+ "sys-libs/x-2": { }, |
+ "sys-apps/a-1": { "DEPEND" : "sys-libs/x", "RDEPEND" : "sys-libs/x"}, |
+ "sys-apps/a-2": { "DEPEND" : "sys-libs/x", "RDEPEND" : "sys-libs/x"}, |
+ "sys-apps/b-1": { "DEPEND" : "sys-libs/x", "RDEPEND" : "sys-libs/x"}, |
+ "sys-apps/b-2": { "DEPEND" : "sys-libs/x", "RDEPEND" : "sys-libs/x"}, |
+ "sys-apps/c-1": { "DEPEND" : "sys-libs/x", "RDEPEND" : ""}, |
+ "sys-apps/c-2": { "DEPEND" : "sys-libs/x", "RDEPEND" : ""}, |
+ "sys-apps/d-1": { "RDEPEND" : "sys-libs/x"}, |
+ "sys-apps/d-2": { "RDEPEND" : "sys-libs/x"}, |
+ "sys-apps/e-2": { "DEPEND" : "sys-libs/x", "RDEPEND" : "sys-libs/x"}, |
+ "sys-apps/f-2": { "DEPEND" : "sys-apps/a", "RDEPEND" : "sys-apps/a"}, |
+ } |
+ |
+ installed = { |
+ "sys-libs/x-1": { }, |
+ "sys-apps/a-1": { "DEPEND" : "sys-libs/x", "RDEPEND" : "sys-libs/x"}, |
+ "sys-apps/b-1": { "DEPEND" : "sys-libs/x", "RDEPEND" : "sys-libs/x"}, |
+ "sys-apps/c-1": { "DEPEND" : "sys-libs/x", "RDEPEND" : ""}, |
+ "sys-apps/d-1": { "RDEPEND" : "sys-libs/x"}, |
+ "sys-apps/e-1": { "DEPEND" : "sys-libs/x", "RDEPEND" : "sys-libs/x"}, |
+ "sys-apps/f-1": { "DEPEND" : "sys-apps/a", "RDEPEND" : "sys-apps/a"}, |
+ } |
+ |
+ world = ["sys-apps/a", "sys-apps/b", "sys-apps/c", "sys-apps/d", |
+ "sys-apps/e", "sys-apps/f"] |
+ |
+ test_cases = ( |
+ ResolverPlaygroundTestCase( |
+ ["sys-libs/x"], |
+ options = {"--rebuild" : True, |
+ "--norebuild-atoms" : ["sys-apps/b"]}, |
+ mergelist = ['sys-libs/x-2', 'sys-apps/a-2', 'sys-apps/e-2'], |
+ ignore_mergelist_order = True, |
+ success = True), |
+ |
+ ResolverPlaygroundTestCase( |
+ ["sys-libs/x"], |
+ options = {"--rebuild" : True}, |
+ mergelist = ['sys-libs/x-2', 'sys-apps/a-2', 'sys-apps/b-2', 'sys-apps/e-2'], |
+ ignore_mergelist_order = True, |
+ success = True), |
+ ) |
+ |
+ playground = ResolverPlayground(ebuilds=ebuilds, |
+ installed=installed, world=world) |
+ |
+ try: |
+ for test_case in test_cases: |
+ playground.run_TestCase(test_case) |
+ self.assertEqual(test_case.test_success, True, test_case.fail_msg) |
+ finally: |
+ playground.cleanup() |