Merge pull request #724 from hedayat/fix-merge-depends-on

Fixes #723: merge short & long syntax of depends_on dependencies
This commit is contained in:
Muayyad Alsadi 2024-05-08 17:57:44 +03:00 committed by GitHub
commit 7a2da76ab8
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 52 additions and 0 deletions

View File

@ -1420,6 +1420,15 @@ def normalize_service(service, sub_dir=""):
if is_str(extends):
extends = {"service": extends}
service["extends"] = extends
if "depends_on" in service:
deps = service["depends_on"]
if is_str(deps):
deps = [deps]
if is_list(deps):
deps_dict = {}
for d in deps:
deps_dict[d] = {'condition': 'service_started'}
service["depends_on"] = deps_dict
return service

View File

@ -0,0 +1,43 @@
import copy
from podman_compose import normalize_service
test_cases_simple = [
(
{"depends_on": "my_service"},
{"depends_on": {"my_service": {"condition": "service_started"}}},
),
(
{"depends_on": ["my_service"]},
{"depends_on": {"my_service": {"condition": "service_started"}}},
),
(
{"depends_on": ["my_service1", "my_service2"]},
{
"depends_on": {
"my_service1": {"condition": "service_started"},
"my_service2": {"condition": "service_started"},
},
},
),
(
{"depends_on": {"my_service": {"condition": "service_started"}}},
{"depends_on": {"my_service": {"condition": "service_started"}}},
),
(
{"depends_on": {"my_service": {"condition": "service_healthy"}}},
{"depends_on": {"my_service": {"condition": "service_healthy"}}},
),
]
def test_normalize_service_simple():
for test_case, expected in copy.deepcopy(test_cases_simple):
test_original = copy.deepcopy(test_case)
test_case = normalize_service(test_case)
test_result = expected == test_case
if not test_result:
print("test: ", test_original)
print("expected: ", expected)
print("actual: ", test_case)
assert test_result