aboutsummaryrefslogtreecommitdiff
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
parent15f058d2438465e87005103a258b91c4c35fb960 (diff)
parent9f824cfe4ea7e85f34e3857aca943960e7c368f6 (diff)
downloadkolla-c3341ab51a5ab8367efb93c7202d293bf3166fa4.tar.gz
kolla-c3341ab51a5ab8367efb93c7202d293bf3166fa4.zip
Merge "Add new test script for parallel builds"
-rw-r--r--test-requirements.txt1
-rw-r--r--tests/test_build.py59
-rw-r--r--tools/__init__.py0
-rw-r--r--tox.ini9
4 files changed, 69 insertions, 0 deletions
diff --git a/test-requirements.txt b/test-requirements.txt
index 269d9f566..dc12a067b 100644
--- a/test-requirements.txt
+++ b/test-requirements.txt
@@ -14,3 +14,4 @@ python-swiftclient>=2.2.0
testrepository>=0.0.18
testscenarios>=0.4
testtools>=0.9.36,!=1.2.0
+jinja2
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)
diff --git a/tools/__init__.py b/tools/__init__.py
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tools/__init__.py
diff --git a/tox.ini b/tox.ini
index 8e4aa17a4..3bc7d3787 100644
--- a/tox.ini
+++ b/tox.ini
@@ -42,6 +42,15 @@ commands =
sudo -g docker testr run ^(test_images).*
bash -c "if [ -f buildconf.bak ]; then mv buildconf.bak .buildconf; fi"
+[testenv:images-centos-rdo]
+whitelist_externals = find
+ bash
+ sudo
+commands =
+ find . -type f -name "*.pyc" -delete
+ bash -c "if [ ! -d .testrepository ]; then testr init; fi"
+ sudo -g docker testr run ^(test_build).*
+
[testenv:images-centos-src]
whitelist_externals = find
bash