aboutsummaryrefslogtreecommitdiff
path: root/kolla
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2016-06-01 08:35:53 +0000
committerGerrit Code Review <review@openstack.org>2016-06-01 08:35:53 +0000
commit3a6a748abab276568345f5692a5057412c6a0772 (patch)
tree8fb173763d641d6b9c9aa5385056ac0172f56c41 /kolla
parent40cd7550dd261f5d16ecded56c8bd8e0434e18da (diff)
parentb3e8ac8371a497aed6270358062cdfe4952a37ae (diff)
downloadkolla-3a6a748abab276568345f5692a5057412c6a0772.tar.gz
kolla-3a6a748abab276568345f5692a5057412c6a0772.zip
Merge "Don't always unpack image build results tuple, as it may be None"
Diffstat (limited to 'kolla')
-rwxr-xr-xkolla/cmd/build.py16
-rw-r--r--kolla/tests/test_build.py27
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)