mirror of
https://github.com/containers/podman-compose.git
synced 2024-11-21 23:43:24 +01:00
Merge pull request #1045 from mokibit/automate-multicompose-test
tests/integration: Automate manual `multicompose` test
This commit is contained in:
commit
f8ea85e3af
@ -1,19 +0,0 @@
|
||||
# Multiple compose files
|
||||
|
||||
to make sure we get results similar to
|
||||
|
||||
```
|
||||
docker-compose -f d1/docker-compose.yml -f d2/docker-compose.yml up -d
|
||||
docker exec -ti d1_web1_1 sh -c 'set'
|
||||
docker exec -ti d1_web2_1 sh -c 'set'
|
||||
curl http://${d1_web1_1}:8001/index.txt
|
||||
curl http://${d1_web1_1}:8002/index.txt
|
||||
```
|
||||
|
||||
we need to verify
|
||||
|
||||
- project base directory and project name is `d1`
|
||||
- `var12='d1/12.env'` which means `enf_file` was appended not replaced (which means that we normalize to array before merge)
|
||||
- `var2='d1/2.env'` which means that paths inside `d2/docker-compose.yml` directory are relative to `d1`
|
||||
|
||||
|
101
tests/integration/test_podman_compose_multicompose.py
Normal file
101
tests/integration/test_podman_compose_multicompose.py
Normal file
@ -0,0 +1,101 @@
|
||||
# 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",
|
||||
])
|
Loading…
Reference in New Issue
Block a user