From 239f71636db54fc9151d72fc429d5e2c1d69764b Mon Sep 17 00:00:00 2001 From: Monika Kairaityte Date: Mon, 29 Jul 2024 13:06:34 +0200 Subject: [PATCH] tests/integration: Automate manual 'exit-from' tests Signed-off-by: Monika Kairaityte --- tests/integration/exit-from/README.md | 15 ------ .../integration/exit-from/docker-compose.yaml | 6 --- .../test_podman_compose_exit_from.py | 54 +++++++++++++++++++ 3 files changed, 54 insertions(+), 21 deletions(-) delete mode 100644 tests/integration/exit-from/README.md create mode 100644 tests/integration/test_podman_compose_exit_from.py diff --git a/tests/integration/exit-from/README.md b/tests/integration/exit-from/README.md deleted file mode 100644 index 7f8cd302..00000000 --- a/tests/integration/exit-from/README.md +++ /dev/null @@ -1,15 +0,0 @@ -We have service named sh1 that exits with code 1 and sh2 that exists with code 2 - -``` -podman-compose up --exit-code-from=sh1 -echo $? -``` - -the above should give 1. - -``` -podman-compose up --exit-code-from=sh2 -echo $? -``` - -the above should give 2. diff --git a/tests/integration/exit-from/docker-compose.yaml b/tests/integration/exit-from/docker-compose.yaml index a286b2a0..18134adf 100644 --- a/tests/integration/exit-from/docker-compose.yaml +++ b/tests/integration/exit-from/docker-compose.yaml @@ -1,11 +1,5 @@ version: "3" services: - too_long: - image: nopush/podman-compose-test - command: ["dumb-init", "/bin/busybox", "sh", "-c", "sleep 3600; exit 0"] - tmpfs: - - /run - - /tmp sh1: image: nopush/podman-compose-test command: ["dumb-init", "/bin/busybox", "sh", "-c", "sleep 1; exit 1"] diff --git a/tests/integration/test_podman_compose_exit_from.py b/tests/integration/test_podman_compose_exit_from.py new file mode 100644 index 00000000..a5781848 --- /dev/null +++ b/tests/integration/test_podman_compose_exit_from.py @@ -0,0 +1,54 @@ +# 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(), "exit-from"), "docker-compose.yaml") + + +class TestComposeExitFrom(unittest.TestCase, RunSubprocessMixin): + def test_exit_code_sh1(self): + try: + output, _ = self.run_subprocess_assert_returncode( + [ + podman_compose_path(), + "-f", + compose_yaml_path(), + "up", + "--exit-code-from=sh1", + ], + 1, + ) + finally: + self.run_subprocess_assert_returncode([ + podman_compose_path(), + "-f", + compose_yaml_path(), + "down", + ]) + + def test_exit_code_sh2(self): + try: + output, _ = self.run_subprocess_assert_returncode( + [ + podman_compose_path(), + "-f", + compose_yaml_path(), + "up", + "--exit-code-from=sh2", + ], + 2, + ) + finally: + self.run_subprocess_assert_returncode([ + podman_compose_path(), + "-f", + compose_yaml_path(), + "down", + ])