diff --git a/podman_compose.py b/podman_compose.py index 1f9b48e..548315e 100755 --- a/podman_compose.py +++ b/podman_compose.py @@ -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 diff --git a/pytests/test_normalize_depends_on.py b/pytests/test_normalize_depends_on.py new file mode 100644 index 0000000..de773e6 --- /dev/null +++ b/pytests/test_normalize_depends_on.py @@ -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