podman-compose/tests/integration/abort/test_podman_compose_abort.py
gtebbutt 083b95c860 Add --abort-on-container-failure
Signed-off-by: gtebbutt <5956226+gtebbutt@users.noreply.github.com>
2025-04-30 23:03:58 +01:00

77 lines
2.0 KiB
Python

# 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(failure_order):
return os.path.join(
test_path(),
"abort",
f"docker-compose-fail-{failure_order}.yaml"
)
def test_abort_command(failure_order, abort_type):
return [
podman_compose_path(),
"-f",
compose_yaml_path(failure_order),
"up",
f"--abort-on-container-{abort_type}",
]
class TestComposeAbort(unittest.TestCase, RunSubprocessMixin):
def test_abort_on_exit_fail_first(self):
self.run_subprocess_assert_returncode(
test_abort_command("first", "exit"),
0,
)
def test_abort_on_failure_fail_first(self):
self.run_subprocess_assert_returncode(
test_abort_command("first", "failure"),
1,
)
def test_abort_on_exit_fail_second(self):
self.run_subprocess_assert_returncode(
test_abort_command("second", "exit"),
0,
)
def test_abort_on_failure_fail_second(self):
self.run_subprocess_assert_returncode(
test_abort_command("second", "failure"),
1,
)
def test_abort_on_exit_fail_simultaneous(self):
self.run_subprocess_assert_returncode(
test_abort_command("simultaneous", "exit"),
0,
)
def test_abort_on_failure_fail_simultaneous(self):
self.run_subprocess_assert_returncode(
test_abort_command("simultaneous", "failure"),
1,
)
def test_abort_on_exit_fail_none(self):
self.run_subprocess_assert_returncode(
test_abort_command("none", "exit"),
0,
)
def test_abort_on_failure_fail_none(self):
self.run_subprocess_assert_returncode(
test_abort_command("none", "failure"),
0,
)