diff --git a/compose/cli/command.py b/compose/cli/command.py index 020354283..c74e585de 100644 --- a/compose/cli/command.py +++ b/compose/cli/command.py @@ -54,7 +54,8 @@ def get_config_path_from_options(base_dir, options, environment): config_files = environment.get('COMPOSE_FILE') if config_files: - return config_files.split(os.pathsep) + pathsep = environment.get('COMPOSE_PATH_SEPARATOR', os.pathsep) + return config_files.split(pathsep) return None diff --git a/tests/unit/cli/command_test.py b/tests/unit/cli/command_test.py index 50fc84e17..3655c432e 100644 --- a/tests/unit/cli/command_test.py +++ b/tests/unit/cli/command_test.py @@ -45,6 +45,15 @@ class TestGetConfigPathFromOptions(object): '.', {}, environment ) == ['one.yml', 'two.yml'] + def test_multiple_path_from_env_custom_separator(self): + with mock.patch.dict(os.environ): + os.environ['COMPOSE_PATH_SEPARATOR'] = '^' + os.environ['COMPOSE_FILE'] = 'c:\\one.yml^.\\semi;colon.yml' + environment = Environment.from_env_file('.') + assert get_config_path_from_options( + '.', {}, environment + ) == ['c:\\one.yml', '.\\semi;colon.yml'] + def test_no_path(self): environment = Environment.from_env_file('.') assert not get_config_path_from_options('.', {}, environment)