mirror of https://github.com/docker/docker-py.git
Merge pull request #2793 from feliperuhland/create-secret-missing-name
Fix `KeyError` when creating a new secret
This commit is contained in:
commit
d2aa221638
|
|
@ -30,6 +30,7 @@ class SecretCollection(Collection):
|
|||
|
||||
def create(self, **kwargs):
|
||||
obj = self.client.api.create_secret(**kwargs)
|
||||
obj.setdefault("Spec", {})["Name"] = kwargs.get("name")
|
||||
return self.prepare_model(obj)
|
||||
create.__doc__ = APIClient.create_secret.__doc__
|
||||
|
||||
|
|
|
|||
|
|
@ -17,6 +17,8 @@ FAKE_URL = 'myurl'
|
|||
FAKE_PATH = '/path'
|
||||
FAKE_VOLUME_NAME = 'perfectcherryblossom'
|
||||
FAKE_NODE_ID = '24ifsmvkjbyhk'
|
||||
FAKE_SECRET_ID = 'epdyrw4tsi03xy3deu8g8ly6o'
|
||||
FAKE_SECRET_NAME = 'super_secret'
|
||||
|
||||
# Each method is prefixed with HTTP method (get, post...)
|
||||
# for clarity and readability
|
||||
|
|
@ -512,6 +514,12 @@ def post_fake_network_disconnect():
|
|||
return 200, None
|
||||
|
||||
|
||||
def post_fake_secret():
|
||||
status_code = 200
|
||||
response = {'ID': FAKE_SECRET_ID}
|
||||
return status_code, response
|
||||
|
||||
|
||||
# Maps real api url to fake response callback
|
||||
prefix = 'http+docker://localhost'
|
||||
if constants.IS_WINDOWS_PLATFORM:
|
||||
|
|
@ -643,4 +651,6 @@ fake_responses = {
|
|||
CURRENT_VERSION, prefix, FAKE_NETWORK_ID
|
||||
), 'POST'):
|
||||
post_fake_network_disconnect,
|
||||
'{1}/{0}/secrets/create'.format(CURRENT_VERSION, prefix):
|
||||
post_fake_secret,
|
||||
}
|
||||
|
|
|
|||
|
|
@ -40,6 +40,7 @@ def make_fake_api_client(overrides=None):
|
|||
fake_api.post_fake_create_container()[1],
|
||||
'create_host_config.side_effect': api_client.create_host_config,
|
||||
'create_network.return_value': fake_api.post_fake_network()[1],
|
||||
'create_secret.return_value': fake_api.post_fake_secret()[1],
|
||||
'exec_create.return_value': fake_api.post_fake_exec_create()[1],
|
||||
'exec_start.return_value': fake_api.post_fake_exec_start()[1],
|
||||
'images.return_value': fake_api.get_fake_images()[1],
|
||||
|
|
|
|||
|
|
@ -0,0 +1,11 @@
|
|||
import unittest
|
||||
|
||||
from .fake_api_client import make_fake_client
|
||||
from .fake_api import FAKE_SECRET_NAME
|
||||
|
||||
|
||||
class CreateServiceTest(unittest.TestCase):
|
||||
def test_secrets_repr(self):
|
||||
client = make_fake_client()
|
||||
secret = client.secrets.create(name="super_secret", data="secret")
|
||||
assert secret.__repr__() == "<Secret: '{}'>".format(FAKE_SECRET_NAME)
|
||||
Loading…
Reference in New Issue