mirror of
https://github.com/containers/podman-compose.git
synced 2025-08-09 21:57:44 +02:00
Adding basic support for --profile argument
Signed-off-by: Dixon Whitmire <dixonwh@gmail.com>
This commit is contained in:
committed by
Muayyad Alsadi
parent
bc5f0123d9
commit
8d8df0bc28
78
tests/test_podman_compose_config.py
Normal file
78
tests/test_podman_compose_config.py
Normal file
@ -0,0 +1,78 @@
|
||||
"""
|
||||
test_podman_compose_config.py
|
||||
|
||||
Tests the podman-compose config command which is used to return defined compose services.
|
||||
"""
|
||||
import pytest
|
||||
import os
|
||||
from test_podman_compose import capture
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def profile_compose_file(test_path):
|
||||
""""Returns the path to the `profile` compose file used for this test module"""
|
||||
return os.path.join(test_path, "profile", "docker-compose.yml")
|
||||
|
||||
|
||||
def test_config_no_profiles(podman_compose_path, profile_compose_file):
|
||||
"""
|
||||
Tests podman-compose config command without profile enablement.
|
||||
|
||||
:param podman_compose_path: The fixture used to specify the path to the podman compose file.
|
||||
:param profile_compose_file: The fixtued used to specify the path to the "profile" compose used in the test.
|
||||
"""
|
||||
config_cmd = [
|
||||
"python3",
|
||||
podman_compose_path,
|
||||
"-f",
|
||||
profile_compose_file,
|
||||
"config"
|
||||
]
|
||||
|
||||
out, err, return_code = capture(config_cmd)
|
||||
assert return_code == 0
|
||||
|
||||
string_output = out.decode("utf-8")
|
||||
assert "default-service" in string_output
|
||||
assert "service-1" not in string_output
|
||||
assert "service-2" not in string_output
|
||||
|
||||
|
||||
@pytest.mark.parametrize("profiles, expected_services",
|
||||
[
|
||||
(["--profile", "profile-1", "config"],
|
||||
{"default-service": True, "service-1": True, "service-2": False}),
|
||||
(["--profile", "profile-2", "config"],
|
||||
{"default-service": True, "service-1": False, "service-2": True}),
|
||||
(["--profile", "profile-1", "--profile", "profile-2", "config"],
|
||||
{"default-service": True, "service-1": True, "service-2": True})
|
||||
])
|
||||
def test_config_profiles(podman_compose_path, profile_compose_file, profiles, expected_services):
|
||||
"""
|
||||
Tests podman-compose
|
||||
:param podman_compose_path: The fixture used to specify the path to the podman compose file.
|
||||
:param profile_compose_file: The fixtued used to specify the path to the "profile" compose used in the test.
|
||||
:param profiles: The enabled profiles for the parameterized test.
|
||||
:param expected_services: Dictionary used to model the expected "enabled" services in the profile.
|
||||
Key = service name, Value = True if the service is enabled, otherwise False.
|
||||
"""
|
||||
config_cmd = [
|
||||
"python3",
|
||||
podman_compose_path,
|
||||
"-f",
|
||||
profile_compose_file
|
||||
]
|
||||
config_cmd.extend(profiles)
|
||||
|
||||
out, err, return_code = capture(config_cmd)
|
||||
assert return_code == 0
|
||||
|
||||
actual_output = out.decode("utf-8")
|
||||
|
||||
assert len(expected_services) == 3
|
||||
|
||||
actual_services = {}
|
||||
for service, expected_check in expected_services.items():
|
||||
actual_services[service] = service in actual_output
|
||||
|
||||
assert expected_services == actual_services
|
Reference in New Issue
Block a user