Codebase list docker-compose / cf3c07d
Merge pull request #6826 from ulyssessouza/env_override_integration_test Add integration tests regarding environment Jean-Christophe Sirot authored 4 years ago GitHub committed 4 years ago
5 changed file(s) with 34 addition(s) and 3 deletion(s). Raw diff Collapse all Expand all
6363 return ProcessResult(stdout.decode('utf-8'), stderr.decode('utf-8'))
6464
6565
66 def dispatch(base_dir, options, project_options=None, returncode=0):
67 project_options = project_options or []
68 proc = start_process(base_dir, project_options + options)
69 return wait_on_process(proc, returncode=returncode)
70
71
6672 def wait_on_condition(condition, delay=0.1, timeout=40):
6773 start_time = time.time()
6874 while not condition():
150156 return self._project
151157
152158 def dispatch(self, options, project_options=None, returncode=0):
153 project_options = project_options or []
154 proc = start_process(self.base_dir, project_options + options)
155 return wait_on_process(proc, returncode=returncode)
159 return dispatch(self.base_dir, options, project_options, returncode)
156160
157161 def execute(self, container, cmd):
158162 # Remove once Hijack and CloseNotifier sign a peace treaty
0 WHEREAMI
1 DEFAULT_CONF_LOADED=true
0 version: '3.7'
1 services:
2 test:
3 image: busybox
4 env_file: .env.conf
5 entrypoint: env
66 from ddt import ddt
77
88 from .. import mock
9 from ..acceptance.cli_test import dispatch
10 from compose.cli.command import get_project
911 from compose.cli.command import project_from_options
12 from compose.config.environment import Environment
1013 from tests.integration.testcases import DockerClientTestCase
1114
1215
4952 # So no need to have a proper options map, the `COMMAND` key is enough
5053 project_from_options('.', options)
5154 assert fake_log.warn.call_count == 0
55
56
57 class EnvironmentOverrideFileTest(DockerClientTestCase):
58 def test_env_file_override(self):
59 base_dir = 'tests/fixtures/env-file-override'
60 dispatch(base_dir, ['--env-file', '.env.override', 'up'])
61 project = get_project(project_dir=base_dir,
62 config_path=['docker-compose.yml'],
63 environment=Environment.from_env_file(base_dir, '.env.override'),
64 override_dir=base_dir)
65 containers = project.containers(stopped=True)
66 assert len(containers) == 1
67 assert "WHEREAMI=override" in containers[0].get('Config.Env')
68 assert "DEFAULT_CONF_LOADED=true" in containers[0].get('Config.Env')
69 dispatch(base_dir, ['--env-file', '.env.override', 'down'], None)