diff --git a/tests/integration/interpolation/docker-compose.yml b/tests/integration/interpolation/docker-compose.yml index c5358e00..da0b5cf2 100644 --- a/tests/integration/interpolation/docker-compose.yml +++ b/tests/integration/interpolation/docker-compose.yml @@ -4,8 +4,8 @@ services: image: busybox command: ["/bin/busybox", "sh", "-c", "export | grep EXAMPLE"] environment: - EXAMPLE_VARIABLE: "Host user: $USER" - EXAMPLE_BRACES: "Host user: ${USER}" + EXAMPLE_VARIABLE: "Host user: $EXAMPLE_VARIABLE_USER" + EXAMPLE_BRACES: "Host user: ${EXAMPLE_VARIABLE_USER}" EXAMPLE_COLON_DASH_DEFAULT: ${NOT_A_VARIABLE:-My default} EXAMPLE_DASH_DEFAULT: ${NOT_A_VARIABLE-My other default} EXAMPLE_DOT_ENV: $DOT_ENV_VARIABLE diff --git a/tests/integration/test_podman_compose_interpolation.py b/tests/integration/test_podman_compose_interpolation.py new file mode 100644 index 00000000..53eb9ac5 --- /dev/null +++ b/tests/integration/test_podman_compose_interpolation.py @@ -0,0 +1,45 @@ +# SPDX-License-Identifier: GPL-2.0 + +import os +import unittest + +from tests.integration.test_podman_compose import podman_compose_path +from tests.integration.test_podman_compose import test_path +from tests.integration.test_utils import RunSubprocessMixin + + +def compose_yaml_path(): + return os.path.join(os.path.join(test_path(), "interpolation"), "docker-compose.yml") + + +class TestComposeInterpolation(unittest.TestCase, RunSubprocessMixin): + def test_interpolation(self): + try: + self.run_subprocess_assert_returncode([ + "env", + "EXAMPLE_VARIABLE_USER=test_user", + podman_compose_path(), + "-f", + compose_yaml_path(), + "up", + ]) + output, _ = self.run_subprocess_assert_returncode([ + podman_compose_path(), + "-f", + compose_yaml_path(), + "logs", + ]) + self.assertIn("EXAMPLE_VARIABLE='Host user: test_user'", str(output)) + self.assertIn("EXAMPLE_BRACES='Host user: test_user'", str(output)) + self.assertIn("EXAMPLE_COLON_DASH_DEFAULT='My default'", str(output)) + self.assertIn("EXAMPLE_DASH_DEFAULT='My other default'", str(output)) + self.assertIn("EXAMPLE_DOT_ENV='This value is from the .env file'", str(output)) + self.assertIn("EXAMPLE_EMPTY=''", str(output)) + self.assertIn("EXAMPLE_LITERAL='This is a $literal'", str(output)) + finally: + self.run_subprocess_assert_returncode([ + podman_compose_path(), + "-f", + compose_yaml_path(), + "down", + ])