From 83c7e9462e7f51b70b5b1afc2155aa23477222bb Mon Sep 17 00:00:00 2001 From: Monika Kairaityte Date: Fri, 16 May 2025 21:58:11 +0300 Subject: [PATCH 1/3] tests/integration: Add missing __init__.py files to actually run tests Signed-off-by: Monika Kairaityte --- tests/integration/lifetime/__init__.py | 0 tests/integration/nets_test3/__init__.py | 0 tests/integration/nets_test_ip/__init__.py | 0 tests/integration/no_services/__init__.py | 0 tests/integration/seccomp/__init__.py | 0 tests/integration/secrets/__init__.py | 0 tests/integration/selinux/__init__.py | 0 tests/integration/service_scale/__init__.py | 0 tests/integration/uidmaps/__init__.py | 0 9 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 tests/integration/lifetime/__init__.py create mode 100644 tests/integration/nets_test3/__init__.py create mode 100644 tests/integration/nets_test_ip/__init__.py create mode 100644 tests/integration/no_services/__init__.py create mode 100644 tests/integration/seccomp/__init__.py create mode 100644 tests/integration/secrets/__init__.py create mode 100644 tests/integration/selinux/__init__.py create mode 100644 tests/integration/service_scale/__init__.py create mode 100644 tests/integration/uidmaps/__init__.py diff --git a/tests/integration/lifetime/__init__.py b/tests/integration/lifetime/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/tests/integration/nets_test3/__init__.py b/tests/integration/nets_test3/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/tests/integration/nets_test_ip/__init__.py b/tests/integration/nets_test_ip/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/tests/integration/no_services/__init__.py b/tests/integration/no_services/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/tests/integration/seccomp/__init__.py b/tests/integration/seccomp/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/tests/integration/secrets/__init__.py b/tests/integration/secrets/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/tests/integration/selinux/__init__.py b/tests/integration/selinux/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/tests/integration/service_scale/__init__.py b/tests/integration/service_scale/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/tests/integration/uidmaps/__init__.py b/tests/integration/uidmaps/__init__.py new file mode 100644 index 0000000..e69de29 From d4ebf62e0efa6e25fec92ac0ea4f1a97a4d40585 Mon Sep 17 00:00:00 2001 From: Monika Kairaityte Date: Fri, 23 May 2025 21:32:46 +0300 Subject: [PATCH 2/3] tests/integration: Fix `lifetime` tests Signed-off-by: Monika Kairaityte --- tests/integration/lifetime/test_lifetime.py | 34 ++++++++++++------- .../docker-compose.yml | 2 +- .../docker-compose.yml | 2 +- 3 files changed, 24 insertions(+), 14 deletions(-) diff --git a/tests/integration/lifetime/test_lifetime.py b/tests/integration/lifetime/test_lifetime.py index 54648e0..c2c6056 100644 --- a/tests/integration/lifetime/test_lifetime.py +++ b/tests/integration/lifetime/test_lifetime.py @@ -2,6 +2,7 @@ import os +import time import unittest from parameterized import parameterized @@ -85,15 +86,14 @@ class TestLifetime(unittest.TestCase, RunSubprocessMixin): "container1", ]) - for _ in range(0, 3): - self.run_subprocess_assert_returncode([ - podman_compose_path(), - "-f", - compose_path, - "up", - "-d", - "container2", - ]) + self.run_subprocess_assert_returncode([ + podman_compose_path(), + "-f", + compose_path, + "up", + "-d", + "container2", + ]) out, _ = self.run_subprocess_assert_returncode([ podman_compose_path(), @@ -105,6 +105,7 @@ class TestLifetime(unittest.TestCase, RunSubprocessMixin): self.assertEqual(out, b"test1\n") + # "restart: always" keeps restarting container until its removal out, _ = self.run_subprocess_assert_returncode([ podman_compose_path(), "-f", @@ -113,13 +114,22 @@ class TestLifetime(unittest.TestCase, RunSubprocessMixin): "container2", ]) - # BUG: container should be started 3 times, not 4. - self.assertEqual(out, b"test2\n" * 4) - + if not out.startswith(b"test2\ntest2"): + time.sleep(1) + out, _ = self.run_subprocess_assert_returncode([ + podman_compose_path(), + "-f", + compose_path, + "logs", + "container2", + ]) + self.assertTrue(out.startswith(b"test2\ntest2")) finally: out, _ = self.run_subprocess_assert_returncode([ podman_compose_path(), "-f", compose_path, "down", + "-t", + "0", ]) diff --git a/tests/integration/lifetime/up_single_container_many_times/docker-compose.yml b/tests/integration/lifetime/up_single_container_many_times/docker-compose.yml index c59967c..fcf2d1e 100644 --- a/tests/integration/lifetime/up_single_container_many_times/docker-compose.yml +++ b/tests/integration/lifetime/up_single_container_many_times/docker-compose.yml @@ -5,5 +5,5 @@ services: command: ["/bin/bash", "-c", "echo test1; sleep infinity"] container2: image: nopush/podman-compose-test - restart: never + restart: always command: ["/bin/bash", "-c", "echo test2"] diff --git a/tests/integration/lifetime/up_single_container_many_times_with_ports/docker-compose.yml b/tests/integration/lifetime/up_single_container_many_times_with_ports/docker-compose.yml index 26a61ef..0ad6e29 100644 --- a/tests/integration/lifetime/up_single_container_many_times_with_ports/docker-compose.yml +++ b/tests/integration/lifetime/up_single_container_many_times_with_ports/docker-compose.yml @@ -6,6 +6,6 @@ services: command: ["/bin/bash", "-c", "echo test1; sleep infinity"] container2: image: nopush/podman-compose-test - restart: never + restart: always ports: "9002:9002" command: ["/bin/bash", "-c", "echo test2"] From 56238b10e33427ca585a6612525c6c314139c1a1 Mon Sep 17 00:00:00 2001 From: Monika Kairaityte Date: Sat, 24 May 2025 15:19:41 +0300 Subject: [PATCH 3/3] tests/integration: Fix `service_scale` tests Signed-off-by: Monika Kairaityte --- .../docker-compose.yml | 2 +- .../test_podman_compose_scale.py | 47 ++++++++++++++++--- 2 files changed, 42 insertions(+), 7 deletions(-) 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 index e08f795..0e0f1df 100644 --- a/tests/integration/service_scale/scaleup_deploy_replicas_parameter/docker-compose.yml +++ b/tests/integration/service_scale/scaleup_deploy_replicas_parameter/docker-compose.yml @@ -6,4 +6,4 @@ services: tty: true deploy: mode: replicated - replicas: 2 + replicas: 3 diff --git a/tests/integration/service_scale/test_podman_compose_scale.py b/tests/integration/service_scale/test_podman_compose_scale.py index cbee415..38b51c0 100644 --- a/tests/integration/service_scale/test_podman_compose_scale.py +++ b/tests/integration/service_scale/test_podman_compose_scale.py @@ -33,6 +33,15 @@ class TestComposeScale(unittest.TestCase, RunSubprocessMixin): ]) self.assertEqual(len(output.splitlines()), 2) finally: + self.run_subprocess_assert_returncode([ + "podman", + "rm", + "--force", + "-t", + "0", + "podman-compose_service1_1", + "podman-compose_service1_2", + ]) self.run_subprocess_assert_returncode([ podman_compose_path(), "-f", @@ -56,12 +65,22 @@ class TestComposeScale(unittest.TestCase, RunSubprocessMixin): output, _, return_code = self.run_subprocess([ podman_compose_path(), "-f", - compose_yaml_path("scaleup_scale_parameter"), + compose_yaml_path("scaleup_deploy_replicas_parameter"), "ps", "-q", ]) - self.assertEqual(len(output.splitlines()), 2) + self.assertEqual(len(output.splitlines()), 3) finally: + self.run_subprocess_assert_returncode([ + "podman", + "rm", + "--force", + "-t", + "0", + "podman-compose_service1_1", + "podman-compose_service1_2", + "podman-compose_service1_3", + ]) self.run_subprocess_assert_returncode([ podman_compose_path(), "-f", @@ -89,18 +108,34 @@ class TestComposeScale(unittest.TestCase, RunSubprocessMixin): "up", "-d", "--scale", - "service1=2", + "service1=4", ]) - self.assertEqual(return_code, 0) + # error code 125 is expected as podman-compose complains about already used name + # "podman-compose_service1_1" for the 1st container + # Nevertheless, following containers are still created to scale as expected + # (in test case till 3 containers) + self.assertEqual(return_code, 125) + output, _, return_code = self.run_subprocess([ podman_compose_path(), "-f", - compose_yaml_path("scaleup_scale_parameter"), + compose_yaml_path('scaleup_cli'), "ps", "-q", ]) - self.assertEqual(len(output.splitlines()), 2) + self.assertEqual(len(output.splitlines()), 4) finally: + self.run_subprocess_assert_returncode([ + "podman", + "rm", + "--force", + "-t", + "0", + "podman-compose_service1_1", + "podman-compose_service1_2", + "podman-compose_service1_3", + "podman-compose_service1_4", + ]) self.run_subprocess_assert_returncode([ podman_compose_path(), "-f",