mirror of
https://github.com/containers/podman-compose.git
synced 2025-04-22 16:39:01 +02:00
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:
commit
7a2da76ab8
@ -1420,6 +1420,15 @@ def normalize_service(service, sub_dir=""):
|
|||||||
if is_str(extends):
|
if is_str(extends):
|
||||||
extends = {"service": extends}
|
extends = {"service": extends}
|
||||||
service["extends"] = 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
|
return service
|
||||||
|
|
||||||
|
|
||||||
|
43
pytests/test_normalize_depends_on.py
Normal file
43
pytests/test_normalize_depends_on.py
Normal 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
|
Loading…
Reference in New Issue
Block a user