diff --git a/kolla/cmd/build.py b/kolla/cmd/build.py
index 18ff68503d..779ac76978 100755
--- a/kolla/cmd/build.py
+++ b/kolla/cmd/build.py
@@ -738,6 +738,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')
 
@@ -792,11 +797,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 b6eeffa7d0..cc55bd48aa 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)