diff --git a/tests/integration/merge/reset_and_override_tags/override_tag_service/__init__.py b/tests/integration/merge/reset_and_override_tags/override_tag_service/__init__.py new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/tests/integration/merge/reset_and_override_tags/override_tag_service/__init__.py @@ -0,0 +1 @@ + diff --git a/tests/integration/merge/reset_and_override_tags/override_tag_service/docker-compose.override_service.yaml b/tests/integration/merge/reset_and_override_tags/override_tag_service/docker-compose.override_service.yaml new file mode 100644 index 0000000..630ec29 --- /dev/null +++ b/tests/integration/merge/reset_and_override_tags/override_tag_service/docker-compose.override_service.yaml @@ -0,0 +1,7 @@ +version: "3" +services: + app: !override + image: busybox + command: ["/bin/busybox", "echo", "One"] + ports: + - "8111:81" diff --git a/tests/integration/merge/reset_and_override_tags/override_tag_service/docker-compose.yaml b/tests/integration/merge/reset_and_override_tags/override_tag_service/docker-compose.yaml new file mode 100644 index 0000000..74eaad0 --- /dev/null +++ b/tests/integration/merge/reset_and_override_tags/override_tag_service/docker-compose.yaml @@ -0,0 +1,7 @@ +version: "3" +services: + app: + image: busybox + command: ["/bin/busybox", "echo", "Zero"] + ports: + - "8080:80" diff --git a/tests/integration/merge/reset_and_override_tags/override_tag_service/test_podman_compose_override_tag_service.py b/tests/integration/merge/reset_and_override_tags/override_tag_service/test_podman_compose_override_tag_service.py new file mode 100644 index 0000000..e39687c --- /dev/null +++ b/tests/integration/merge/reset_and_override_tags/override_tag_service/test_podman_compose_override_tag_service.py @@ -0,0 +1,61 @@ +# SPDX-License-Identifier: GPL-2.0 + +import json +import os +import unittest + +from tests.integration.test_utils import RunSubprocessMixin +from tests.integration.test_utils import podman_compose_path +from tests.integration.test_utils import test_path + + +def compose_yaml_path(): + return os.path.join(os.path.join(test_path(), "override_tag_service"), "docker-compose.yaml") + + +class TestComposeOverrideTagService(unittest.TestCase, RunSubprocessMixin): + # test if whole service from docker-compose.yaml file is overridden in another file + def test_override_tag_service(self): + override_file = os.path.join( + os.path.join(test_path(), "override_tag_service"), + "docker-compose.override_service.yaml", + ) + try: + self.run_subprocess_assert_returncode([ + podman_compose_path(), + "-f", + compose_yaml_path(), + "-f", + override_file, + "up", + ]) + + # Whole app service was overridden in the docker-compose.override_tag_service.yaml file. + # Command and port is overridden accordingly. + output, _ = self.run_subprocess_assert_returncode([ + podman_compose_path(), + "-f", + compose_yaml_path(), + "-f", + override_file, + "logs", + ]) + self.assertEqual(output, b"One\n") + + output, _ = self.run_subprocess_assert_returncode([ + "podman", + "inspect", + "override_tag_service_app_1", + ]) + container_info = json.loads(output.decode('utf-8'))[0] + self.assertEqual( + container_info['NetworkSettings']["Ports"], + {"81/tcp": [{"HostIp": "", "HostPort": "8111"}]}, + ) + finally: + self.run_subprocess_assert_returncode([ + podman_compose_path(), + "-f", + compose_yaml_path(), + "down", + ])