aboutsummaryrefslogtreecommitdiff
path: root/tests/test_build.py
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2015-08-12 20:36:30 +0000
committerGerrit Code Review <review@openstack.org>2015-08-12 20:36:30 +0000
commitc3341ab51a5ab8367efb93c7202d293bf3166fa4 (patch)
treeabb48b51a443e50cb0976208e876162bc4ed0287 /tests/test_build.py
parent15f058d2438465e87005103a258b91c4c35fb960 (diff)
parent9f824cfe4ea7e85f34e3857aca943960e7c368f6 (diff)
downloadkolla-c3341ab51a5ab8367efb93c7202d293bf3166fa4.tar.gz
kolla-c3341ab51a5ab8367efb93c7202d293bf3166fa4.zip
Merge "Add new test script for parallel builds"
Diffstat (limited to 'tests/test_build.py')
-rw-r--r--tests/test_build.py59
1 files changed, 59 insertions, 0 deletions
diff --git a/tests/test_build.py b/tests/test_build.py
new file mode 100644
index 000000000..0bfaad275
--- /dev/null
+++ b/tests/test_build.py
@@ -0,0 +1,59 @@
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+
+from mock import patch
+from os import path
+from oslo_log import fixture as log_fixture
+from oslo_log import log as logging
+from oslotest import base
+
+import sys
+sys.path.append(path.abspath(path.join(path.dirname(__file__), '../tools')))
+from tools import build
+
+LOG = logging.getLogger(__name__)
+
+
+class BuildTest(base.BaseTestCase):
+
+ def setUp(self):
+ super(BuildTest, self).setUp()
+ self.useFixture(log_fixture.SetLogLevel([__name__],
+ logging.logging.INFO))
+
+ def test_build(self):
+ build_args = ["--debug"]
+ with patch.object(sys, 'argv', build_args):
+ bad_results, good_results = build.main()
+
+ # these are images that are known to not build properly
+ excluded_images = ["barbican",
+ "gnocchi-api",
+ "gnocchi-statsd"]
+
+ failures = 0
+ for image, result in bad_results.iteritems():
+ if image in excluded_images:
+ if result is 'error':
+ continue
+ failures = failures + 1
+ LOG.warning(">>> Expected image '%s' to fail, please update"
+ " the excluded_images in source file above if the"
+ " image build has been fixed." % image)
+ else:
+ if result is not 'error':
+ continue
+ failures = failures + 1
+ LOG.critical(">>> Expected image '%s' to succeed!" % image)
+
+ self.assertEqual(failures, 0, "%d failure(s) occurred" % failures)