mirror of https://github.com/docker/docker-py.git
fix: keyerror when creating new config (#3200)
Closes #3110. --------- Signed-off-by: Khushiyant <khushiyant2002@gmail.com>
This commit is contained in:
parent
f467fd9df9
commit
b8a6987cd5
|
@ -30,6 +30,7 @@ class ConfigCollection(Collection):
|
||||||
|
|
||||||
def create(self, **kwargs):
|
def create(self, **kwargs):
|
||||||
obj = self.client.api.create_config(**kwargs)
|
obj = self.client.api.create_config(**kwargs)
|
||||||
|
obj.setdefault("Spec", {})["Name"] = kwargs.get("name")
|
||||||
return self.prepare_model(obj)
|
return self.prepare_model(obj)
|
||||||
create.__doc__ = APIClient.create_config.__doc__
|
create.__doc__ = APIClient.create_config.__doc__
|
||||||
|
|
||||||
|
|
|
@ -19,6 +19,8 @@ FAKE_VOLUME_NAME = 'perfectcherryblossom'
|
||||||
FAKE_NODE_ID = '24ifsmvkjbyhk'
|
FAKE_NODE_ID = '24ifsmvkjbyhk'
|
||||||
FAKE_SECRET_ID = 'epdyrw4tsi03xy3deu8g8ly6o'
|
FAKE_SECRET_ID = 'epdyrw4tsi03xy3deu8g8ly6o'
|
||||||
FAKE_SECRET_NAME = 'super_secret'
|
FAKE_SECRET_NAME = 'super_secret'
|
||||||
|
FAKE_CONFIG_ID = 'sekvs771242jfdjnvfuds8232'
|
||||||
|
FAKE_CONFIG_NAME = 'super_config'
|
||||||
|
|
||||||
# Each method is prefixed with HTTP method (get, post...)
|
# Each method is prefixed with HTTP method (get, post...)
|
||||||
# for clarity and readability
|
# for clarity and readability
|
||||||
|
@ -512,6 +514,11 @@ def post_fake_secret():
|
||||||
response = {'ID': FAKE_SECRET_ID}
|
response = {'ID': FAKE_SECRET_ID}
|
||||||
return status_code, response
|
return status_code, response
|
||||||
|
|
||||||
|
def post_fake_config():
|
||||||
|
status_code = 200
|
||||||
|
response = {'ID': FAKE_CONFIG_ID}
|
||||||
|
return status_code, response
|
||||||
|
|
||||||
|
|
||||||
# Maps real api url to fake response callback
|
# Maps real api url to fake response callback
|
||||||
prefix = 'http+docker://localhost'
|
prefix = 'http+docker://localhost'
|
||||||
|
@ -630,4 +637,6 @@ fake_responses = {
|
||||||
post_fake_network_disconnect,
|
post_fake_network_disconnect,
|
||||||
f'{prefix}/{CURRENT_VERSION}/secrets/create':
|
f'{prefix}/{CURRENT_VERSION}/secrets/create':
|
||||||
post_fake_secret,
|
post_fake_secret,
|
||||||
|
f'{prefix}/{CURRENT_VERSION}/configs/create':
|
||||||
|
post_fake_config,
|
||||||
}
|
}
|
||||||
|
|
|
@ -37,6 +37,7 @@ def make_fake_api_client(overrides=None):
|
||||||
'create_host_config.side_effect': api_client.create_host_config,
|
'create_host_config.side_effect': api_client.create_host_config,
|
||||||
'create_network.return_value': fake_api.post_fake_network()[1],
|
'create_network.return_value': fake_api.post_fake_network()[1],
|
||||||
'create_secret.return_value': fake_api.post_fake_secret()[1],
|
'create_secret.return_value': fake_api.post_fake_secret()[1],
|
||||||
|
'create_config.return_value': fake_api.post_fake_config()[1],
|
||||||
'exec_create.return_value': fake_api.post_fake_exec_create()[1],
|
'exec_create.return_value': fake_api.post_fake_exec_create()[1],
|
||||||
'exec_start.return_value': fake_api.post_fake_exec_start()[1],
|
'exec_start.return_value': fake_api.post_fake_exec_start()[1],
|
||||||
'images.return_value': fake_api.get_fake_images()[1],
|
'images.return_value': fake_api.get_fake_images()[1],
|
||||||
|
|
|
@ -0,0 +1,10 @@
|
||||||
|
import unittest
|
||||||
|
|
||||||
|
from .fake_api_client import make_fake_client
|
||||||
|
from .fake_api import FAKE_CONFIG_NAME
|
||||||
|
|
||||||
|
class CreateConfigsTest(unittest.TestCase):
|
||||||
|
def test_create_config(self):
|
||||||
|
client = make_fake_client()
|
||||||
|
config = client.configs.create(name="super_config", data="config")
|
||||||
|
assert config.__repr__() == "<Config: '{}'>".format(FAKE_CONFIG_NAME)
|
Loading…
Reference in New Issue