diff --git a/packages/models-library/src/models_library/services.py b/packages/models-library/src/models_library/services.py index a566feba069..84bd5a2b811 100644 --- a/packages/models-library/src/models_library/services.py +++ b/packages/models-library/src/models_library/services.py @@ -27,7 +27,7 @@ DYNAMIC_SERVICE_KEY_RE = r"^(simcore)/(services)/dynamic(/[\w/-]+)+$" COMPUTATIONAL_SERVICE_KEY_RE = r"^(simcore)/(services)/comp(/[\w/-]+)+$" KEY_RE = SERVICE_KEY_RE # TODO: deprecate this global constant by SERVICE_KEY_RE -SERVICE_NETWORK_RE = r"^([a-zA-Z0-9_]+)$" +SERVICE_NETWORK_RE = r"^([a-zA-Z0-9_-]+)$" PROPERTY_TYPE_RE = r"^(number|integer|boolean|string|data:([^/\s,]+/[^/\s,]+|\[[^/\s,]+/[^/\s,]+(,[^/\s]+/[^/,\s]+)*\]))$" PROPERTY_KEY_RE = r"^[-_a-zA-Z0-9]+$" diff --git a/services/director-v2/tests/unit/test_modules_dynamic_sidecar_docker_api.py b/services/director-v2/tests/unit/test_modules_dynamic_sidecar_docker_api.py index 3b7ec2937c7..4746fd5fc01 100644 --- a/services/director-v2/tests/unit/test_modules_dynamic_sidecar_docker_api.py +++ b/services/director-v2/tests/unit/test_modules_dynamic_sidecar_docker_api.py @@ -7,6 +7,7 @@ from uuid import UUID, uuid4 import pytest +from _pytest.monkeypatch import MonkeyPatch from models_library.projects import ProjectID from models_library.projects_nodes_io import NodeID from settings_library.docker_registry import RegistrySettings @@ -48,10 +49,8 @@ @pytest.fixture -def dynamic_sidecar_settings(monkeypatch) -> DynamicSidecarSettings: - monkeypatch.setenv( - "DYNAMIC_SIDECAR_IMAGE", "local/dynamic-sidecar:TEST_MOCKED_TAG_NOT_PRESENT" - ) +def dynamic_sidecar_settings(monkeypatch: MonkeyPatch) -> DynamicSidecarSettings: + monkeypatch.setenv("DYNAMIC_SIDECAR_IMAGE", "local/dynamic-sidecar:MOCKED") return DynamicSidecarSettings(REGISTRY=RegistrySettings()) @@ -253,6 +252,19 @@ async def _count_services_in_stack( # TESTS +@pytest.mark.parametrize( + "simcore_services_network_name", + ("n", "network", "with_underscore", "with-dash", "with-dash_with_underscore"), +) +def test_valid_network_names( + simcore_services_network_name: str, monkeypatch: MonkeyPatch +) -> None: + monkeypatch.setenv("DYNAMIC_SIDECAR_IMAGE", "local/dynamic-sidecar:MOCKED") + monkeypatch.setenv("SIMCORE_SERVICES_NETWORK_NAME", simcore_services_network_name) + dynamic_sidecar_settings = DynamicSidecarSettings(REGISTRY=RegistrySettings()) + assert dynamic_sidecar_settings + + async def test_failed_docker_client_request( missing_network_name: str, docker_swarm: None ) -> None: