summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoffrey F <f.joffrey@gmail.com>2015-10-27 15:57:00 +0100
committerJoffrey F <f.joffrey@gmail.com>2015-10-27 15:57:00 +0100
commit311ae711d49ed28ecef42c806fac7afb8f53ea85 (patch)
tree5739a525a1220fe995db82ad4627a0963f3cc8c7
parent929e0465677a780b67a3026eb20f9635ad3e3b39 (diff)
parent22da6ace7a755885489aafbe2003cbb2f0c253cd (diff)
downloaddocker-py-311ae711d49ed28ecef42c806fac7afb8f53ea85.tar.gz
Merge pull request #825 from aebm/master
Fix auth.load_config bug calling parse_auth
-rw-r--r--docker/auth/auth.py2
-rw-r--r--tests/unit/auth_test.py29
2 files changed, 30 insertions, 1 deletions
diff --git a/docker/auth/auth.py b/docker/auth/auth.py
index b02c3ed..2ed894e 100644
--- a/docker/auth/auth.py
+++ b/docker/auth/auth.py
@@ -172,7 +172,7 @@ def load_config(config_path=None):
data = json.load(f)
if data.get('auths'):
log.debug("Found 'auths' section")
- return parse_auth(data)
+ return parse_auth(data['auths'])
else:
log.debug("Couldn't find 'auths' section")
f.seek(0)
diff --git a/tests/unit/auth_test.py b/tests/unit/auth_test.py
index 3405de6..9f4d439 100644
--- a/tests/unit/auth_test.py
+++ b/tests/unit/auth_test.py
@@ -287,3 +287,32 @@ class LoadConfigTest(base.Cleanup, base.BaseTestCase):
self.assertEqual(cfg['password'], 'izayoi')
self.assertEqual(cfg['email'], 'sakuya@scarlet.net')
self.assertEqual(cfg.get('auth'), None)
+
+ def test_load_config_custom_config_env_with_auths(self):
+ folder = tempfile.mkdtemp()
+ self.addCleanup(shutil.rmtree, folder)
+
+ dockercfg_path = os.path.join(folder, 'config.json')
+ registry = 'https://your.private.registry.io'
+ auth_ = base64.b64encode(b'sakuya:izayoi').decode('ascii')
+ config = {
+ 'auths': {
+ registry: {
+ 'auth': '{0}'.format(auth_),
+ 'email': 'sakuya@scarlet.net'
+ }
+ }
+ }
+
+ with open(dockercfg_path, 'w') as f:
+ json.dump(config, f)
+
+ with mock.patch.dict(os.environ, {'DOCKER_CONFIG': folder}):
+ cfg = auth.load_config(None)
+ assert registry in cfg
+ self.assertNotEqual(cfg[registry], None)
+ cfg = cfg[registry]
+ self.assertEqual(cfg['username'], 'sakuya')
+ self.assertEqual(cfg['password'], 'izayoi')
+ self.assertEqual(cfg['email'], 'sakuya@scarlet.net')
+ self.assertEqual(cfg.get('auth'), None)