diff --git a/tests/integration/project_test.py b/tests/integration/project_test.py index c6949cdc9..f915640e3 100644 --- a/tests/integration/project_test.py +++ b/tests/integration/project_test.py @@ -1,6 +1,7 @@ from __future__ import absolute_import from __future__ import unicode_literals +import copy import json import os import random @@ -1500,34 +1501,47 @@ class ProjectTest(DockerClientTestCase): def test_project_up_with_added_secrets(self): node = create_host_file(self.client, os.path.abspath('tests/fixtures/secrets/default')) - config_data = build_config( - version=V3_1, - services=[{ - 'name': 'web', - 'image': 'busybox:latest', - 'command': 'cat /run/secrets/special', - # 'secrets': [ - # types.ServiceSecret.parse({'source': 'super', 'target': 'special'}), - # ], - 'environment': ['constraint:node=={}'.format(node if node is not None else '*')] - }], - secrets={ - 'super': { - 'file': os.path.abspath('tests/fixtures/secrets/default'), - }, - }, - ) + config_input1 = { + 'version': V3_1, + 'services': [ + { + 'name': 'web', + 'image': 'busybox:latest', + 'command': 'cat /run/secrets/special', + 'environment': ['constraint:node=={}'.format(node if node is not None else '')] + } + ], + 'secrets': { + 'super': { + 'file': os.path.abspath('tests/fixtures/secrets/default') + } + } + } + config_input2 = copy.deepcopy(config_input1) + # Add the secret + config_input2['services'][0]['secrets'] = [ + types.ServiceSecret.parse({'source': 'super', 'target': 'special'}) + ] + + config_data1 = build_config(**config_input1) + config_data2 = build_config(**config_input2) + + # First up with non-secret project = Project.from_config( client=self.client, name='composetest', - config_data=config_data, + config_data=config_data1, ) project.up() project.stop() - project.services[0].secrets = [ - types.ServiceSecret.parse({'source': 'super', 'target': 'special'}) - ] + + # Then up with secret + project = Project.from_config( + client=self.client, + name='composetest', + config_data=config_data2, + ) project.up() project.stop()