summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAanand Prasad <aanand.prasad@gmail.com>2016-03-22 10:33:49 +0000
committerAanand Prasad <aanand.prasad@gmail.com>2016-03-22 10:33:49 +0000
commit880f8b0c5181714f6dc109ee266f589db3cfdb12 (patch)
treec496c292a045d621a7aab8d40da153d587662c4a
parent5c1c42397cf0fdb74182df2d69822b82df8f2a6a (diff)
parent3fe08cbfe5acc382ad907d29f77d7dcd938d5b77 (diff)
downloaddocker-py-880f8b0c5181714f6dc109ee266f589db3cfdb12.tar.gz
Merge pull request #1006 from docker/kwargs_from_env_alt
Support passing an alternate environment dict to kwargs_from_env
-rw-r--r--docker/utils/utils.py10
-rw-r--r--tests/unit/utils_test.py14
2 files changed, 20 insertions, 4 deletions
diff --git a/docker/utils/utils.py b/docker/utils/utils.py
index 70fcb1f..136466c 100644
--- a/docker/utils/utils.py
+++ b/docker/utils/utils.py
@@ -479,15 +479,17 @@ def parse_devices(devices):
return device_list
-def kwargs_from_env(ssl_version=None, assert_hostname=None):
- host = os.environ.get('DOCKER_HOST')
+def kwargs_from_env(ssl_version=None, assert_hostname=None, environment=None):
+ if not environment:
+ environment = os.environ
+ host = environment.get('DOCKER_HOST')
# empty string for cert path is the same as unset.
- cert_path = os.environ.get('DOCKER_CERT_PATH') or None
+ cert_path = environment.get('DOCKER_CERT_PATH') or None
# empty string for tls verify counts as "false".
# Any value or 'unset' counts as true.
- tls_verify = os.environ.get('DOCKER_TLS_VERIFY')
+ tls_verify = environment.get('DOCKER_TLS_VERIFY')
if tls_verify == '':
tls_verify = False
else:
diff --git a/tests/unit/utils_test.py b/tests/unit/utils_test.py
index c744604..bd79459 100644
--- a/tests/unit/utils_test.py
+++ b/tests/unit/utils_test.py
@@ -249,6 +249,20 @@ class KwargsFromEnvTest(base.BaseTestCase):
if temp_dir:
shutil.rmtree(temp_dir)
+ def test_kwargs_from_env_alternate_env(self):
+ # Values in os.environ are entirely ignored if an alternate is
+ # provided
+ os.environ.update(
+ DOCKER_HOST='tcp://192.168.59.103:2376',
+ DOCKER_CERT_PATH=TEST_CERT_DIR,
+ DOCKER_TLS_VERIFY=''
+ )
+ kwargs = kwargs_from_env(environment={
+ 'DOCKER_HOST': 'http://docker.gensokyo.jp:2581',
+ })
+ assert 'http://docker.gensokyo.jp:2581' == kwargs['base_url']
+ assert 'tls' not in kwargs
+
class ConverVolumeBindsTest(base.BaseTestCase):
def test_convert_volume_binds_empty(self):