mirror of
https://github.com/containers/podman-compose.git
synced 2024-11-25 09:23:31 +01:00
102 lines
3.4 KiB
Python
102 lines
3.4 KiB
Python
|
# 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(), "multicompose"), "docker-compose.yml")
|
||
|
|
||
|
|
||
|
class TestComposeMulticompose(unittest.TestCase, RunSubprocessMixin):
|
||
|
def test_multicompose(self):
|
||
|
try:
|
||
|
self.run_subprocess_assert_returncode(
|
||
|
[
|
||
|
podman_compose_path(),
|
||
|
"-f",
|
||
|
os.path.join(
|
||
|
os.path.join(test_path(), "multicompose"), "d1/docker-compose.yml"
|
||
|
),
|
||
|
"-f",
|
||
|
os.path.join(
|
||
|
os.path.join(test_path(), "multicompose"), "d2/docker-compose.yml"
|
||
|
),
|
||
|
"up",
|
||
|
"-d",
|
||
|
],
|
||
|
)
|
||
|
output, _ = self.run_subprocess_assert_returncode([
|
||
|
podman_compose_path(),
|
||
|
"-f",
|
||
|
os.path.join(os.path.join(test_path(), "multicompose"), "d1/docker-compose.yml"),
|
||
|
"-f",
|
||
|
os.path.join(os.path.join(test_path(), "multicompose"), "d2/docker-compose.yml"),
|
||
|
"ps",
|
||
|
])
|
||
|
self.assertIn(b"d1_web1_1", output)
|
||
|
self.assertIn(b"d1_web2_1", output)
|
||
|
|
||
|
output, _ = self.run_subprocess_assert_returncode([
|
||
|
"podman",
|
||
|
"exec",
|
||
|
"-ti",
|
||
|
"d1_web1_1",
|
||
|
"sh",
|
||
|
"-c",
|
||
|
"set",
|
||
|
])
|
||
|
# checks if `enf_file` was appended, not replaced
|
||
|
# (which means that we normalize to array before merge)
|
||
|
self.assertIn(b"var12='d1/12.env'", output)
|
||
|
|
||
|
output, _ = self.run_subprocess_assert_returncode([
|
||
|
"podman",
|
||
|
"exec",
|
||
|
"-ti",
|
||
|
"d1_web2_1",
|
||
|
"sh",
|
||
|
"-c",
|
||
|
"set",
|
||
|
])
|
||
|
# checks if paths inside `d2/docker-compose.yml` directory are relative to `d1`
|
||
|
self.assertIn(b"var2='d1/2.env'", output)
|
||
|
|
||
|
output, _ = self.run_subprocess_assert_returncode([
|
||
|
"podman",
|
||
|
"exec",
|
||
|
"-ti",
|
||
|
"d1_web1_1",
|
||
|
"sh",
|
||
|
"-c",
|
||
|
"cat /var/www/html/index.txt",
|
||
|
])
|
||
|
self.assertIn(b"var1=d1/1.env", output)
|
||
|
|
||
|
# check if project base directory and project name is d1
|
||
|
output, _ = self.run_subprocess_assert_returncode([
|
||
|
"podman",
|
||
|
"exec",
|
||
|
"-ti",
|
||
|
"d1_web2_1",
|
||
|
"sh",
|
||
|
"-c",
|
||
|
"cat /var/www/html/index.txt",
|
||
|
])
|
||
|
self.assertIn(b"var2=d1/2.env", output)
|
||
|
finally:
|
||
|
self.run_subprocess_assert_returncode([
|
||
|
podman_compose_path(),
|
||
|
"-f",
|
||
|
os.path.join(os.path.join(test_path(), "multicompose"), "d1/docker-compose.yml"),
|
||
|
"-f",
|
||
|
os.path.join(os.path.join(test_path(), "multicompose"), "d2/docker-compose.yml"),
|
||
|
"down",
|
||
|
"-t",
|
||
|
"0",
|
||
|
])
|