diff options
author | Ulysses Souza <ulysses.souza@docker.com> | 2019-07-31 01:58:16 +0200 |
---|---|---|
committer | Ulysses Souza <ulysses.souza@docker.com> | 2019-07-31 02:09:41 +0200 |
commit | b03889ac2a09e8ac6145b90015f0e4328d9928c4 (patch) | |
tree | 45cafba62ebeeb6bbbd05445dd9298525e03aa59 | |
parent | 7a7c9ff67a9716831c4ec2fdfa099b91a6c1858f (diff) |
Add integration tests regarding environment
This covers what was included in #6800
Signed-off-by: Ulysses Souza <ulysses.souza@docker.com>
-rw-r--r-- | tests/acceptance/cli_test.py | 10 | ||||
-rw-r--r-- | tests/fixtures/env-file-override/.env.conf | 2 | ||||
-rw-r--r-- | tests/fixtures/env-file-override/.env.override | 1 | ||||
-rw-r--r-- | tests/fixtures/env-file-override/docker-compose.yml | 6 | ||||
-rw-r--r-- | tests/integration/environment_test.py | 18 |
5 files changed, 34 insertions, 3 deletions
diff --git a/tests/acceptance/cli_test.py b/tests/acceptance/cli_test.py index 3fd857f2..77b46c27 100644 --- a/tests/acceptance/cli_test.py +++ b/tests/acceptance/cli_test.py @@ -64,6 +64,12 @@ def wait_on_process(proc, returncode=0): return ProcessResult(stdout.decode('utf-8'), stderr.decode('utf-8')) +def dispatch(base_dir, options, project_options=None, returncode=0): + project_options = project_options or [] + proc = start_process(base_dir, project_options + options) + return wait_on_process(proc, returncode=returncode) + + def wait_on_condition(condition, delay=0.1, timeout=40): start_time = time.time() while not condition(): @@ -151,9 +157,7 @@ class CLITestCase(DockerClientTestCase): return self._project def dispatch(self, options, project_options=None, returncode=0): - project_options = project_options or [] - proc = start_process(self.base_dir, project_options + options) - return wait_on_process(proc, returncode=returncode) + return dispatch(self.base_dir, options, project_options, returncode) def execute(self, container, cmd): # Remove once Hijack and CloseNotifier sign a peace treaty diff --git a/tests/fixtures/env-file-override/.env.conf b/tests/fixtures/env-file-override/.env.conf new file mode 100644 index 00000000..90b8b495 --- /dev/null +++ b/tests/fixtures/env-file-override/.env.conf @@ -0,0 +1,2 @@ +WHEREAMI +DEFAULT_CONF_LOADED=true diff --git a/tests/fixtures/env-file-override/.env.override b/tests/fixtures/env-file-override/.env.override new file mode 100644 index 00000000..398fa51b --- /dev/null +++ b/tests/fixtures/env-file-override/.env.override @@ -0,0 +1 @@ +WHEREAMI=override diff --git a/tests/fixtures/env-file-override/docker-compose.yml b/tests/fixtures/env-file-override/docker-compose.yml new file mode 100644 index 00000000..fdae6d82 --- /dev/null +++ b/tests/fixtures/env-file-override/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.7' +services: + test: + image: busybox + env_file: .env.conf + entrypoint: env diff --git a/tests/integration/environment_test.py b/tests/integration/environment_test.py index ac31d2e1..671e6531 100644 --- a/tests/integration/environment_test.py +++ b/tests/integration/environment_test.py @@ -7,7 +7,10 @@ from ddt import data from ddt import ddt from .. import mock +from ..acceptance.cli_test import dispatch +from compose.cli.command import get_project from compose.cli.command import project_from_options +from compose.config.environment import Environment from tests.integration.testcases import DockerClientTestCase @@ -50,3 +53,18 @@ services: # So no need to have a proper options map, the `COMMAND` key is enough project_from_options('.', options) assert fake_log.warn.call_count == 0 + + +class EnvironmentOverrideFileTest(DockerClientTestCase): + def test_env_file_override(self): + base_dir = 'tests/fixtures/env-file-override' + dispatch(base_dir, ['--env-file', '.env.override', 'up']) + project = get_project(project_dir=base_dir, + config_path=['docker-compose.yml'], + environment=Environment.from_env_file(base_dir, '.env.override'), + override_dir=base_dir) + containers = project.containers(stopped=True) + assert len(containers) == 1 + assert "WHEREAMI=override" in containers[0].get('Config.Env') + assert "DEFAULT_CONF_LOADED=true" in containers[0].get('Config.Env') + dispatch(base_dir, ['--env-file', '.env.override', 'down'], None) |