mirror of
https://github.com/containers/podman-compose.git
synced 2024-11-25 09:23:31 +01:00
126 lines
3.5 KiB
Python
126 lines
3.5 KiB
Python
|
# SPDX-License-Identifier: GPL-2.0
|
||
|
|
||
|
|
||
|
import os
|
||
|
import unittest
|
||
|
|
||
|
from parameterized import parameterized
|
||
|
|
||
|
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
|
||
|
|
||
|
|
||
|
class TestLifetime(unittest.TestCase, RunSubprocessMixin):
|
||
|
def test_up_single_container(self):
|
||
|
"""Podman compose up should be able to start containers one after another"""
|
||
|
|
||
|
compose_path = os.path.join(test_path(), "lifetime/up_single_container/docker-compose.yml")
|
||
|
|
||
|
try:
|
||
|
self.run_subprocess_assert_returncode([
|
||
|
podman_compose_path(),
|
||
|
"-f",
|
||
|
compose_path,
|
||
|
"up",
|
||
|
"-d",
|
||
|
"container1",
|
||
|
])
|
||
|
|
||
|
self.run_subprocess_assert_returncode([
|
||
|
podman_compose_path(),
|
||
|
"-f",
|
||
|
compose_path,
|
||
|
"up",
|
||
|
"-d",
|
||
|
"container2",
|
||
|
])
|
||
|
|
||
|
out, _ = self.run_subprocess_assert_returncode([
|
||
|
podman_compose_path(),
|
||
|
"-f",
|
||
|
compose_path,
|
||
|
"logs",
|
||
|
"container1",
|
||
|
])
|
||
|
|
||
|
self.assertEqual(out, b"test1\n")
|
||
|
|
||
|
out, _ = self.run_subprocess_assert_returncode([
|
||
|
podman_compose_path(),
|
||
|
"-f",
|
||
|
compose_path,
|
||
|
"logs",
|
||
|
"container2",
|
||
|
])
|
||
|
|
||
|
self.assertEqual(out, b"test2\n")
|
||
|
|
||
|
finally:
|
||
|
out, _ = self.run_subprocess_assert_returncode([
|
||
|
podman_compose_path(),
|
||
|
"-f",
|
||
|
compose_path,
|
||
|
"down",
|
||
|
])
|
||
|
|
||
|
@parameterized.expand([
|
||
|
("no_ports", "up_single_container_many_times"),
|
||
|
("with_ports", "up_single_container_many_times_with_ports"),
|
||
|
])
|
||
|
def test_up_single_container_many_times(self, name, subdir):
|
||
|
"""Podman compose up should be able to start a container many times after it finishes
|
||
|
running.
|
||
|
"""
|
||
|
|
||
|
compose_path = os.path.join(test_path(), f"lifetime/{subdir}/docker-compose.yml")
|
||
|
|
||
|
try:
|
||
|
self.run_subprocess_assert_returncode([
|
||
|
podman_compose_path(),
|
||
|
"-f",
|
||
|
compose_path,
|
||
|
"up",
|
||
|
"-d",
|
||
|
"container1",
|
||
|
])
|
||
|
|
||
|
for _ in range(0, 3):
|
||
|
self.run_subprocess_assert_returncode([
|
||
|
podman_compose_path(),
|
||
|
"-f",
|
||
|
compose_path,
|
||
|
"up",
|
||
|
"-d",
|
||
|
"container2",
|
||
|
])
|
||
|
|
||
|
out, _ = self.run_subprocess_assert_returncode([
|
||
|
podman_compose_path(),
|
||
|
"-f",
|
||
|
compose_path,
|
||
|
"logs",
|
||
|
"container1",
|
||
|
])
|
||
|
|
||
|
self.assertEqual(out, b"test1\n")
|
||
|
|
||
|
out, _ = self.run_subprocess_assert_returncode([
|
||
|
podman_compose_path(),
|
||
|
"-f",
|
||
|
compose_path,
|
||
|
"logs",
|
||
|
"container2",
|
||
|
])
|
||
|
|
||
|
# BUG: container should be started 3 times, not 4.
|
||
|
self.assertEqual(out, b"test2\n" * 4)
|
||
|
|
||
|
finally:
|
||
|
out, _ = self.run_subprocess_assert_returncode([
|
||
|
podman_compose_path(),
|
||
|
"-f",
|
||
|
compose_path,
|
||
|
"down",
|
||
|
])
|