diff options
| author | Zuul <zuul@review.opendev.org> | 2020-04-04 13:06:17 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2020-04-04 13:06:17 +0000 |
| commit | a2659460f2c501ce4ea24b805d21eb1257a2fdb8 (patch) | |
| tree | 81f05e63897e842c13e5da4a2939d4a2f9bf5a37 /kolla/tests | |
| parent | ee542d05eb60b715299b73718e3b1d1982ae3fe5 (diff) | |
| parent | dfddcce3a5bc98cbd177c984fd9d0a8bab51d40c (diff) | |
| download | kolla-a2659460f2c501ce4ea24b805d21eb1257a2fdb8.tar.gz kolla-a2659460f2c501ce4ea24b805d21eb1257a2fdb8.zip | |
Merge "Fix --skip-existing and --skip-parents"
Diffstat (limited to 'kolla/tests')
| -rw-r--r-- | kolla/tests/test_build.py | 72 |
1 files changed, 71 insertions, 1 deletions
diff --git a/kolla/tests/test_build.py b/kolla/tests/test_build.py index b7f5c30c0..1b633de4c 100644 --- a/kolla/tests/test_build.py +++ b/kolla/tests/test_build.py @@ -43,6 +43,10 @@ FAKE_IMAGE_CHILD_BUILT = build.Image( 'image-child-built', 'image-child-built:latest', '/fake/path5', parent_name='image-base', parent=FAKE_IMAGE, status=build.STATUS_BUILT) +FAKE_IMAGE_GRANDCHILD = build.Image( + 'image-grandchild', 'image-grandchild:latest', + '/fake/path6', parent_name='image-child', + parent=FAKE_IMAGE_CHILD, status=build.STATUS_MATCHED) class TasksTest(base.TestCase): @@ -434,14 +438,80 @@ class KollaWorkerTest(base.TestCase): if image.status == build.STATUS_MATCHED] def test_skip_parents(self): + self.conf.set_override('skip_parents', True) + kolla = build.KollaWorker(self.conf) + kolla.images = self.images[:2] + for i in kolla.images: + i.status = build.STATUS_UNPROCESSED + if i.parent: + i.parent.children.append(i) + kolla.filter_images() + + self.assertEqual(build.STATUS_MATCHED, kolla.images[1].status) + self.assertEqual(build.STATUS_SKIPPED, kolla.images[1].parent.status) + + def test_skip_parents_regex(self): self.conf.set_override('regex', ['image-child']) self.conf.set_override('skip_parents', True) kolla = build.KollaWorker(self.conf) - kolla.images = self.images + kolla.images = self.images[:2] + for i in kolla.images: + i.status = build.STATUS_UNPROCESSED + if i.parent: + i.parent.children.append(i) kolla.filter_images() + self.assertEqual(build.STATUS_MATCHED, kolla.images[1].status) self.assertEqual(build.STATUS_SKIPPED, kolla.images[1].parent.status) + def test_skip_parents_match_grandchildren(self): + self.conf.set_override('skip_parents', True) + kolla = build.KollaWorker(self.conf) + image_grandchild = FAKE_IMAGE_GRANDCHILD.copy() + image_grandchild.parent = self.images[1] + self.images[1].children.append(image_grandchild) + kolla.images = self.images[:2] + [image_grandchild] + for i in kolla.images: + i.status = build.STATUS_UNPROCESSED + if i.parent: + i.parent.children.append(i) + kolla.filter_images() + + self.assertEqual(build.STATUS_MATCHED, kolla.images[2].status) + self.assertEqual(build.STATUS_SKIPPED, kolla.images[2].parent.status) + self.assertEqual(build.STATUS_SKIPPED, kolla.images[1].parent.status) + + def test_skip_parents_match_grandchildren_regex(self): + self.conf.set_override('regex', ['image-grandchild']) + self.conf.set_override('skip_parents', True) + kolla = build.KollaWorker(self.conf) + image_grandchild = FAKE_IMAGE_GRANDCHILD.copy() + image_grandchild.parent = self.images[1] + self.images[1].children.append(image_grandchild) + kolla.images = self.images[:2] + [image_grandchild] + for i in kolla.images: + i.status = build.STATUS_UNPROCESSED + if i.parent: + i.parent.children.append(i) + kolla.filter_images() + + self.assertEqual(build.STATUS_MATCHED, kolla.images[2].status) + self.assertEqual(build.STATUS_SKIPPED, kolla.images[2].parent.status) + self.assertEqual(build.STATUS_SKIPPED, kolla.images[1].parent.status) + + @mock.patch.object(build.Image, 'in_docker_cache') + def test_skip_existing(self, mock_in_cache): + mock_in_cache.side_effect = [True, False] + self.conf.set_override('skip_existing', True) + kolla = build.KollaWorker(self.conf) + kolla.images = self.images[:2] + for i in kolla.images: + i.status = build.STATUS_UNPROCESSED + kolla.filter_images() + + self.assertEqual(build.STATUS_SKIPPED, kolla.images[0].status) + self.assertEqual(build.STATUS_MATCHED, kolla.images[1].status) + def test_without_profile(self): kolla = build.KollaWorker(self.conf) kolla.images = self.images |
