diff options
| author | Jenkins <jenkins@review.openstack.org> | 2016-06-01 08:35:53 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2016-06-01 08:35:53 +0000 |
| commit | 3a6a748abab276568345f5692a5057412c6a0772 (patch) | |
| tree | 8fb173763d641d6b9c9aa5385056ac0172f56c41 | |
| parent | 40cd7550dd261f5d16ecded56c8bd8e0434e18da (diff) | |
| parent | b3e8ac8371a497aed6270358062cdfe4952a37ae (diff) | |
| download | kolla-3a6a748abab276568345f5692a5057412c6a0772.tar.gz kolla-3a6a748abab276568345f5692a5057412c6a0772.zip | |
Merge "Don't always unpack image build results tuple, as it may be None"
| -rwxr-xr-x | kolla/cmd/build.py | 16 | ||||
| -rw-r--r-- | kolla/tests/test_build.py | 27 |
2 files changed, 38 insertions, 5 deletions
diff --git a/kolla/cmd/build.py b/kolla/cmd/build.py index 406771913..e618899e5 100755 --- a/kolla/cmd/build.py +++ b/kolla/cmd/build.py @@ -736,6 +736,11 @@ class KollaWorker(object): def run_build(): + """Build container images. + + :return: A 3-tuple containing bad, good, and unmatched container image + status dicts, or None if no images were built. + """ conf = cfg.ConfigOpts() common_config.parse(conf, sys.argv[1:], prog='kolla-build') @@ -790,11 +795,12 @@ def run_build(): def main(): - bad_results, good_results, unmatched_results = run_build() - if len(bad_results): - return 1 - else: - return 0 + statuses = run_build() + if statuses: + bad_results, good_results, unmatched_results = statuses + if bad_results: + return 1 + return 0 if __name__ == '__main__': diff --git a/kolla/tests/test_build.py b/kolla/tests/test_build.py index b6eeffa7d..cc55bd48a 100644 --- a/kolla/tests/test_build.py +++ b/kolla/tests/test_build.py @@ -218,3 +218,30 @@ class KollaWorkerTest(base.TestCase): kolla.images = self.images self.assertRaises(ValueError, kolla.filter_images) + + +@mock.patch.object(build, 'run_build') +class MainTest(base.TestCase): + + def test_images_built(self, mock_run_build): + image_statuses = ({}, {'img': 'built'}, {}) + mock_run_build.return_value = image_statuses + result = build.main() + self.assertEqual(0, result) + + def test_images_unmatched(self, mock_run_build): + image_statuses = ({}, {}, {'img': 'unmatched'}) + mock_run_build.return_value = image_statuses + result = build.main() + self.assertEqual(0, result) + + def test_no_images_built(self, mock_run_build): + mock_run_build.return_value = None + result = build.main() + self.assertEqual(0, result) + + def test_bad_images(self, mock_run_build): + image_statuses = ({'img': 'error'}, {}, {}) + mock_run_build.return_value = image_statuses + result = build.main() + self.assertEqual(1, result) |
