From fbc4c7da808e95baf56a08526d726998a4b2301c Mon Sep 17 00:00:00 2001 From: Yashodhan Pise Date: Mon, 31 Mar 2025 18:44:12 +0530 Subject: [PATCH] Integration tests for container scaling changes Signed-off-by: Yashodhan Pise --- .../scaleup_cli/docker-compose.yml | 6 + .../docker-compose.yml | 9 ++ .../docker-compose.yml | 7 ++ .../test_podman_compose_scale.py | 111 ++++++++++++++++++ 4 files changed, 133 insertions(+) create mode 100644 tests/integration/service_scale/scaleup_cli/docker-compose.yml create mode 100644 tests/integration/service_scale/scaleup_deploy_replicas_parameter/docker-compose.yml create mode 100644 tests/integration/service_scale/scaleup_scale_parameter/docker-compose.yml create mode 100644 tests/integration/service_scale/test_podman_compose_scale.py diff --git a/tests/integration/service_scale/scaleup_cli/docker-compose.yml b/tests/integration/service_scale/scaleup_cli/docker-compose.yml new file mode 100644 index 0000000..d7d860c --- /dev/null +++ b/tests/integration/service_scale/scaleup_cli/docker-compose.yml @@ -0,0 +1,6 @@ +name: podman-compose + +services: + service1: + image: docker.io/library/busybox:latest + tty: true diff --git a/tests/integration/service_scale/scaleup_deploy_replicas_parameter/docker-compose.yml b/tests/integration/service_scale/scaleup_deploy_replicas_parameter/docker-compose.yml new file mode 100644 index 0000000..e08f795 --- /dev/null +++ b/tests/integration/service_scale/scaleup_deploy_replicas_parameter/docker-compose.yml @@ -0,0 +1,9 @@ +name: podman-compose + +services: + service1: + image: docker.io/library/busybox:latest + tty: true + deploy: + mode: replicated + replicas: 2 diff --git a/tests/integration/service_scale/scaleup_scale_parameter/docker-compose.yml b/tests/integration/service_scale/scaleup_scale_parameter/docker-compose.yml new file mode 100644 index 0000000..1f641c0 --- /dev/null +++ b/tests/integration/service_scale/scaleup_scale_parameter/docker-compose.yml @@ -0,0 +1,7 @@ +name: podman-compose + +services: + service1: + image: docker.io/library/busybox:latest + tty: true + scale: 2 diff --git a/tests/integration/service_scale/test_podman_compose_scale.py b/tests/integration/service_scale/test_podman_compose_scale.py new file mode 100644 index 0000000..34c3cf9 --- /dev/null +++ b/tests/integration/service_scale/test_podman_compose_scale.py @@ -0,0 +1,111 @@ +# SPDX-License-Identifier: GPL-2.0 + +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(test_ref_folder): + return os.path.join(test_path(), "service_scale", test_ref_folder, "docker-compose.yml") + + +class TestComposeScale(unittest.TestCase, RunSubprocessMixin): + # scale-up using `scale` prarmeter in docker-compose.yml + def test_scaleup_scale_parameter(self): + try: + output, _, return_code = self.run_subprocess([ + podman_compose_path(), + "-f", + compose_yaml_path("scaleup_scale_parameter"), + "up", + "-d", + ]) + self.assertEqual(return_code, 0) + output, _, return_code = self.run_subprocess([ + podman_compose_path(), + "-f", + compose_yaml_path("scaleup_scale_parameter"), + "ps", + "-q", + ]) + self.assertEqual(len(output.splitlines()), 2) + finally: + self.run_subprocess_assert_returncode([ + podman_compose_path(), + "-f", + compose_yaml_path("scaleup_scale_parameter"), + "down", + "-t", + "0", + ]) + + # scale-up using `deploy => replicas` prarmeter in docker-compose.yml + def test_scaleup_deploy_replicas_parameter(self): + try: + output, _, return_code = self.run_subprocess([ + podman_compose_path(), + "-f", + compose_yaml_path('scaleup_deploy_replicas_parameter'), + "up", + "-d", + ]) + self.assertEqual(return_code, 0) + output, _, return_code = self.run_subprocess([ + podman_compose_path(), + "-f", + compose_yaml_path("scaleup_scale_parameter"), + "ps", + "-q", + ]) + self.assertEqual(len(output.splitlines()), 2) + finally: + self.run_subprocess_assert_returncode([ + podman_compose_path(), + "-f", + compose_yaml_path('scaleup_deploy_replicas_parameter'), + "down", + "-t", + "0", + ]) + + # scale-up using `--scale =` argument in CLI + def test_scaleup_cli(self): + try: + output, _, return_code = self.run_subprocess([ + podman_compose_path(), + "-f", + compose_yaml_path('scaleup_cli'), + "up", + "-d", + ]) + self.assertEqual(return_code, 0) + output, _, return_code = self.run_subprocess([ + podman_compose_path(), + "-f", + compose_yaml_path('scaleup_cli'), + "up", + "-d", + "--scale", + "service1=2", + ]) + self.assertEqual(return_code, 0) + output, _, return_code = self.run_subprocess([ + podman_compose_path(), + "-f", + compose_yaml_path("scaleup_scale_parameter"), + "ps", + "-q", + ]) + self.assertEqual(len(output.splitlines()), 2) + finally: + self.run_subprocess_assert_returncode([ + podman_compose_path(), + "-f", + compose_yaml_path('scaleup_cli'), + "down", + "-t", + "0", + ])