aboutsummaryrefslogtreecommitdiff
path: root/kolla/tests
diff options
context:
space:
mode:
authorPaul Bourke <paul.bourke@oracle.com>2016-01-14 11:41:35 +0000
committerPaul Bourke <paul.bourke@oracle.com>2016-01-18 11:53:25 +0000
commitb82111d589cf3f82cbe115d002b29eee959a428f (patch)
treee9c885e465711d6a42a1e756b68159c3b3a4eb21 /kolla/tests
parent7093d37f1825182366939cf64faa477040d29aa2 (diff)
downloadkolla-b82111d589cf3f82cbe115d002b29eee959a428f.tar.gz
kolla-b82111d589cf3f82cbe115d002b29eee959a428f.zip
Pick up proxy buildargs from environment
We currently support any buildarg via --build-args. This patch picks up the default supported proxy buildargs if set in the user's environment, to allow for more transparent proxy support. The --build-args will take precendence. DocImpact Implements blueprint: better-proxy-support Change-Id: I084e5d1cc8f9993d65167878f9983ad58a68e86e
Diffstat (limited to 'kolla/tests')
-rw-r--r--kolla/tests/test_build.py38
1 files changed, 38 insertions, 0 deletions
diff --git a/kolla/tests/test_build.py b/kolla/tests/test_build.py
index afc2e7546..d1ace9ec8 100644
--- a/kolla/tests/test_build.py
+++ b/kolla/tests/test_build.py
@@ -12,6 +12,7 @@
import fixtures
import mock
+import os
from kolla.cmd import build
from kolla.tests import base
@@ -34,6 +35,7 @@ class WorkerThreadTest(base.TestCase):
# NOTE(jeffrey4l): use a real, temporary dir
FAKE_IMAGE['path'] = self.useFixture(fixtures.TempDir()).path
+ @mock.patch.dict(os.environ, clear=True)
@mock.patch('docker.Client')
def test_build_image(self, mock_client):
queue = mock.Mock()
@@ -48,6 +50,7 @@ class WorkerThreadTest(base.TestCase):
nocache=False, rm=True, pull=True, forcerm=True,
buildargs=None)
+ @mock.patch.dict(os.environ, clear=True)
@mock.patch('docker.Client')
def test_build_image_with_build_arg(self, mock_client):
build_args = {
@@ -64,3 +67,38 @@ class WorkerThreadTest(base.TestCase):
path=FAKE_IMAGE['path'], tag=FAKE_IMAGE['fullname'],
nocache=False, rm=True, pull=True, forcerm=True,
buildargs=build_args)
+
+ @mock.patch.dict(os.environ, {'http_proxy': 'http://FROM_ENV:8080'},
+ clear=True)
+ @mock.patch('docker.Client')
+ def test_build_arg_from_env(self, mock_client):
+ build_args = {
+ 'http_proxy': 'http://FROM_ENV:8080',
+ }
+ worker = build.WorkerThread(mock.Mock(),
+ mock.Mock(),
+ self.conf)
+ worker.builder(FAKE_IMAGE)
+
+ mock_client().build.assert_called_once_with(
+ path=FAKE_IMAGE['path'], tag=FAKE_IMAGE['fullname'],
+ nocache=False, rm=True, pull=True, forcerm=True,
+ buildargs=build_args)
+
+ @mock.patch.dict(os.environ, {'http_proxy': 'http://FROM_ENV:8080'},
+ clear=True)
+ @mock.patch('docker.Client')
+ def test_build_arg_precedence(self, mock_client):
+ build_args = {
+ 'http_proxy': 'http://localhost:8080',
+ }
+ self.conf.set_override('build_args', build_args)
+ worker = build.WorkerThread(mock.Mock(),
+ mock.Mock(),
+ self.conf)
+ worker.builder(FAKE_IMAGE)
+
+ mock_client().build.assert_called_once_with(
+ path=FAKE_IMAGE['path'], tag=FAKE_IMAGE['fullname'],
+ nocache=False, rm=True, pull=True, forcerm=True,
+ buildargs=build_args)