From 2a33ef5c79d97cb0f6cf71213106d2de44f0bfc1 Mon Sep 17 00:00:00 2001 From: Monika Kairaityte Date: Tue, 29 Apr 2025 19:57:07 +0300 Subject: [PATCH] tests/integration: Add override tag service test Signed-off-by: Monika Kairaityte --- .../override_tag_service/__init__.py | 1 + .../docker-compose.override_service.yaml | 7 +++ .../override_tag_service/docker-compose.yaml | 7 +++ ...est_podman_compose_override_tag_service.py | 61 +++++++++++++++++++ 4 files changed, 76 insertions(+) create mode 100644 tests/integration/merge/reset_and_override_tags/override_tag_service/__init__.py create mode 100644 tests/integration/merge/reset_and_override_tags/override_tag_service/docker-compose.override_service.yaml create mode 100644 tests/integration/merge/reset_and_override_tags/override_tag_service/docker-compose.yaml create mode 100644 tests/integration/merge/reset_and_override_tags/override_tag_service/test_podman_compose_override_tag_service.py 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", + ])