diff options
author | Aanand Prasad <aanand.prasad@gmail.com> | 2016-03-22 10:33:49 +0000 |
---|---|---|
committer | Aanand Prasad <aanand.prasad@gmail.com> | 2016-03-22 10:33:49 +0000 |
commit | 880f8b0c5181714f6dc109ee266f589db3cfdb12 (patch) | |
tree | c496c292a045d621a7aab8d40da153d587662c4a | |
parent | 5c1c42397cf0fdb74182df2d69822b82df8f2a6a (diff) | |
parent | 3fe08cbfe5acc382ad907d29f77d7dcd938d5b77 (diff) | |
download | docker-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.py | 10 | ||||
-rw-r--r-- | tests/unit/utils_test.py | 14 |
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): |