From 2135f80dacd55f501435aaad1ae4b7796054a328 Mon Sep 17 00:00:00 2001 From: Mikhail Gordeev Date: Tue, 5 May 2020 21:20:50 +0300 Subject: [PATCH] Fix not creating images when rebuild --- cloud_build/cloud_build.py | 4 ++-- tests/test_rebuild.py | 15 +++++++++++++++ 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/cloud_build/cloud_build.py b/cloud_build/cloud_build.py index f876197..a8ff850 100755 --- a/cloud_build/cloud_build.py +++ b/cloud_build/cloud_build.py @@ -508,7 +508,7 @@ Dir::Etc::preferencesparts "/var/empty"; full_target = f'{target}.{kind}' tarball_name = f'{image}-{arch}.{kind}' tarball_path = self.out_dir / tarball_name - result = None + result: Optional[Path] = tarball_path apt_dir = self.work_dir / 'apt' with self.pushd(self.work_dir / 'mkimage-profiles'): if not self.should_rebuild(tarball_path): @@ -527,8 +527,8 @@ Dir::Etc::preferencesparts "/var/empty"; if os.path.exists(tarball_path): self.info(f'End building of {full_target} {arch}') - result = tarball_path else: + result = None self.build_failed(full_target, arch) return result diff --git a/tests/test_rebuild.py b/tests/test_rebuild.py index 37cfae7..f072e79 100644 --- a/tests/test_rebuild.py +++ b/tests/test_rebuild.py @@ -48,3 +48,18 @@ class TestErrors(TestCase): self.cb.create_images() except BuildError: self.fail(msg) + + @mock.patch('subprocess.call', call.Call()) + def test_dont_create_image_when_rebuild(self): + tarball = self.data_dir / 'out/docker_Sisyphus-x86_64.tar.xz' + tarball.touch() + self.cb.create_images() + image = ( + self.data_dir + / 'images' + / 'Sisyphus' + / 'alt-sisyphus-rootfs-minimal-x86_64.tar.xz' + ) + msg = 'Do not create image when rebuild' + if not image.exists(): + self.fail(msg)