@@ -163,17 +163,11 @@ async def mock_retrieve_features(
163163 ) as respx_mock :
164164 if is_legacy :
165165 service_details = RunningDynamicServiceDetails .model_validate (
166- RunningDynamicServiceDetails .model_config ["json_schema_extra" ][
167- "examples"
168- ][0 ]
166+ RunningDynamicServiceDetails .model_json_schema ()["examples" ][0 ]
169167 )
170168 respx_mock .post (
171169 f"{ service_details .legacy_service_url } /retrieve" , name = "retrieve"
172- ).respond (
173- json = RetrieveDataOutEnveloped .model_config ["json_schema_extra" ][
174- "examples"
175- ][0 ]
176- )
170+ ).respond (json = RetrieveDataOutEnveloped .model_json_schema ()["examples" ][0 ])
177171
178172 yield respx_mock
179173 # no cleanup required
@@ -215,6 +209,25 @@ async def _mocked_context_manger(*args, **kwargs) -> AsyncIterator[int]:
215209 )
216210
217211
212+ @pytest .fixture
213+ def mocked_catalog_service_api (
214+ minimal_app : FastAPI , service : dict [str , Any ], service_labels : dict [str , Any ]
215+ ) -> Iterator [MockRouter ]:
216+ # pylint: disable=not-context-manager
217+ with respx .mock (
218+ base_url = minimal_app .state .settings .DIRECTOR_V2_CATALOG .api_base_url ,
219+ assert_all_called = False ,
220+ assert_all_mocked = True ,
221+ ) as respx_mock :
222+ # get services labels
223+ respx_mock .get (
224+ f"/services/{ urllib .parse .quote_plus (service ['key' ])} /{ service ['version' ]} /labels" ,
225+ name = "service labels" ,
226+ ).respond (json = {"data" : service_labels })
227+
228+ yield respx_mock
229+
230+
218231@pytest .fixture
219232def mocked_director_v0_service_api (
220233 minimal_app : FastAPI , service : dict [str , Any ], service_labels : dict [str , Any ]
@@ -236,9 +249,7 @@ def mocked_director_v0_service_api(
236249 name = "running interactive service" ,
237250 ).respond (
238251 json = {
239- "data" : RunningDynamicServiceDetails .model_config ["json_schema_extra" ][
240- "examples"
241- ][0 ]
252+ "data" : RunningDynamicServiceDetails .model_json_schema ()["examples" ][0 ]
242253 }
243254 )
244255
@@ -255,9 +266,7 @@ def get_stack_status(node_uuid: NodeID) -> RunningDynamicServiceDetails:
255266 raise DynamicSidecarNotFoundError (node_uuid = node_uuid )
256267
257268 return RunningDynamicServiceDetails .model_validate (
258- RunningDynamicServiceDetails .model_config ["json_schema_extra" ]["examples" ][
259- 0
260- ]
269+ RunningDynamicServiceDetails .model_json_schema ()["examples" ][0 ]
261270 )
262271
263272 module_base = "simcore_service_director_v2.modules.dynamic_sidecar.scheduler"
@@ -289,9 +298,7 @@ def remove_service(node_uuid: NodeID, *ars: Any, **kwargs: Any) -> None:
289298 [
290299 pytest .param (
291300 * ServiceParams (
292- service = DynamicServiceCreate .model_config ["json_schema_extra" ][
293- "example"
294- ],
301+ service = DynamicServiceCreate .model_json_schema ()["example" ],
295302 service_labels = SimcoreServiceLabels .model_json_schema ()["examples" ][0 ],
296303 exp_status_code = status .HTTP_307_TEMPORARY_REDIRECT ,
297304 is_legacy = True ,
@@ -300,9 +307,7 @@ def remove_service(node_uuid: NodeID, *ars: Any, **kwargs: Any) -> None:
300307 ),
301308 pytest .param (
302309 * ServiceParams (
303- service = DynamicServiceCreate .model_config ["json_schema_extra" ][
304- "example"
305- ],
310+ service = DynamicServiceCreate .model_json_schema ()["example" ],
306311 service_labels = SimcoreServiceLabels .model_json_schema ()["examples" ][1 ],
307312 exp_status_code = status .HTTP_201_CREATED ,
308313 is_legacy = False ,
@@ -311,9 +316,7 @@ def remove_service(node_uuid: NodeID, *ars: Any, **kwargs: Any) -> None:
311316 ),
312317 pytest .param (
313318 * ServiceParams (
314- service = DynamicServiceCreate .model_config ["json_schema_extra" ][
315- "example"
316- ],
319+ service = DynamicServiceCreate .model_json_schema ()["example" ],
317320 service_labels = SimcoreServiceLabels .model_json_schema ()["examples" ][2 ],
318321 exp_status_code = status .HTTP_201_CREATED ,
319322 is_legacy = False ,
@@ -325,6 +328,7 @@ def remove_service(node_uuid: NodeID, *ars: Any, **kwargs: Any) -> None:
325328def test_create_dynamic_services (
326329 minimal_config : None ,
327330 mocked_director_v0_service_api : MockRouter ,
331+ mocked_catalog_service_api : MockRouter ,
328332 mocked_director_v2_scheduler : None ,
329333 client : TestClient ,
330334 dynamic_sidecar_headers : dict [str , str ],
@@ -367,9 +371,7 @@ def test_create_dynamic_services(
367371 [
368372 pytest .param (
369373 * ServiceParams (
370- service = DynamicServiceCreate .model_config ["json_schema_extra" ][
371- "example"
372- ],
374+ service = DynamicServiceCreate .model_json_schema ()["example" ],
373375 service_labels = SimcoreServiceLabels .model_json_schema ()["examples" ][0 ],
374376 exp_status_code = status .HTTP_307_TEMPORARY_REDIRECT ,
375377 is_legacy = True ,
@@ -378,9 +380,7 @@ def test_create_dynamic_services(
378380 ),
379381 pytest .param (
380382 * ServiceParams (
381- service = DynamicServiceCreate .model_config ["json_schema_extra" ][
382- "example"
383- ],
383+ service = DynamicServiceCreate .model_json_schema ()["example" ],
384384 service_labels = SimcoreServiceLabels .model_json_schema ()["examples" ][1 ],
385385 exp_status_code = status .HTTP_200_OK ,
386386 is_legacy = False ,
@@ -389,9 +389,7 @@ def test_create_dynamic_services(
389389 ),
390390 pytest .param (
391391 * ServiceParams (
392- service = DynamicServiceCreate .model_config ["json_schema_extra" ][
393- "example"
394- ],
392+ service = DynamicServiceCreate .model_json_schema ()["example" ],
395393 service_labels = SimcoreServiceLabels .model_json_schema ()["examples" ][2 ],
396394 exp_status_code = status .HTTP_200_OK ,
397395 is_legacy = False ,
@@ -402,6 +400,7 @@ def test_create_dynamic_services(
402400)
403401def test_get_service_status (
404402 mocked_director_v0_service_api : MockRouter ,
403+ mocked_catalog_service_api : MockRouter ,
405404 mocked_director_v2_scheduler : None ,
406405 client : TestClient ,
407406 service : dict [str , Any ],
@@ -431,9 +430,7 @@ def test_get_service_status(
431430 [
432431 pytest .param (
433432 * ServiceParams (
434- service = DynamicServiceCreate .model_config ["json_schema_extra" ][
435- "example"
436- ],
433+ service = DynamicServiceCreate .model_json_schema ()["example" ],
437434 service_labels = SimcoreServiceLabels .model_json_schema ()["examples" ][0 ],
438435 exp_status_code = status .HTTP_307_TEMPORARY_REDIRECT ,
439436 is_legacy = True ,
@@ -442,9 +439,7 @@ def test_get_service_status(
442439 ),
443440 pytest .param (
444441 * ServiceParams (
445- service = DynamicServiceCreate .model_config ["json_schema_extra" ][
446- "example"
447- ],
442+ service = DynamicServiceCreate .model_json_schema ()["example" ],
448443 service_labels = SimcoreServiceLabels .model_json_schema ()["examples" ][1 ],
449444 exp_status_code = status .HTTP_204_NO_CONTENT ,
450445 is_legacy = False ,
@@ -453,9 +448,7 @@ def test_get_service_status(
453448 ),
454449 pytest .param (
455450 * ServiceParams (
456- service = DynamicServiceCreate .model_config ["json_schema_extra" ][
457- "example"
458- ],
451+ service = DynamicServiceCreate .model_json_schema ()["example" ],
459452 service_labels = SimcoreServiceLabels .model_json_schema ()["examples" ][2 ],
460453 exp_status_code = status .HTTP_204_NO_CONTENT ,
461454 is_legacy = False ,
@@ -470,6 +463,7 @@ def test_get_service_status(
470463def test_delete_service (
471464 docker_swarm : None ,
472465 mocked_director_v0_service_api : MockRouter ,
466+ mocked_catalog_service_api : MockRouter ,
473467 mocked_director_v2_scheduler : None ,
474468 mocked_service_awaits_manual_interventions : None ,
475469 client : TestClient ,
@@ -509,9 +503,7 @@ def dynamic_sidecar_scheduler(minimal_app: FastAPI) -> DynamicSidecarsScheduler:
509503 [
510504 pytest .param (
511505 * ServiceParams (
512- service = DynamicServiceCreate .model_config ["json_schema_extra" ][
513- "example"
514- ],
506+ service = DynamicServiceCreate .model_json_schema ()["example" ],
515507 service_labels = SimcoreServiceLabels .model_json_schema ()["examples" ][1 ],
516508 exp_status_code = status .HTTP_201_CREATED ,
517509 is_legacy = False ,
@@ -522,6 +514,7 @@ def dynamic_sidecar_scheduler(minimal_app: FastAPI) -> DynamicSidecarsScheduler:
522514def test_delete_service_waiting_for_manual_intervention (
523515 minimal_config : None ,
524516 mocked_director_v0_service_api : MockRouter ,
517+ mocked_catalog_service_api : MockRouter ,
525518 mocked_director_v2_scheduler : None ,
526519 client : TestClient ,
527520 dynamic_sidecar_headers : dict [str , str ],
@@ -558,9 +551,7 @@ def test_delete_service_waiting_for_manual_intervention(
558551 [
559552 pytest .param (
560553 * ServiceParams (
561- service = DynamicServiceCreate .model_config ["json_schema_extra" ][
562- "example"
563- ],
554+ service = DynamicServiceCreate .model_json_schema ()["example" ],
564555 service_labels = SimcoreServiceLabels .model_json_schema ()["examples" ][0 ],
565556 exp_status_code = status .HTTP_200_OK ,
566557 is_legacy = True ,
@@ -569,9 +560,7 @@ def test_delete_service_waiting_for_manual_intervention(
569560 ),
570561 pytest .param (
571562 * ServiceParams (
572- service = DynamicServiceCreate .model_config ["json_schema_extra" ][
573- "example"
574- ],
563+ service = DynamicServiceCreate .model_json_schema ()["example" ],
575564 service_labels = SimcoreServiceLabels .model_json_schema ()["examples" ][1 ],
576565 exp_status_code = status .HTTP_200_OK ,
577566 is_legacy = False ,
@@ -580,9 +569,7 @@ def test_delete_service_waiting_for_manual_intervention(
580569 ),
581570 pytest .param (
582571 * ServiceParams (
583- service = DynamicServiceCreate .model_config ["json_schema_extra" ][
584- "example"
585- ],
572+ service = DynamicServiceCreate .model_json_schema ()["example" ],
586573 service_labels = SimcoreServiceLabels .model_json_schema ()["examples" ][2 ],
587574 exp_status_code = status .HTTP_200_OK ,
588575 is_legacy = False ,
@@ -595,6 +582,7 @@ def test_retrieve(
595582 minimal_config : None ,
596583 mock_retrieve_features : MockRouter | None ,
597584 mocked_director_v0_service_api : MockRouter ,
585+ mocked_catalog_service_api : MockRouter ,
598586 mocked_director_v2_scheduler : None ,
599587 client : TestClient ,
600588 service : dict [str , Any ],
@@ -607,8 +595,7 @@ def test_retrieve(
607595 response .status_code == exp_status_code
608596 ), f"expected status code { exp_status_code } , received { response .status_code } : { response .text } "
609597 assert (
610- response .json ()
611- == RetrieveDataOutEnveloped .model_config ["json_schema_extra" ]["examples" ][0 ]
598+ response .json () == RetrieveDataOutEnveloped .model_json_schema ()["examples" ][0 ]
612599 )
613600
614601
0 commit comments