diff --git a/packages/pytest-simcore/src/pytest_simcore/services_api_mocks_for_aiohttp_clients.py b/packages/pytest-simcore/src/pytest_simcore/services_api_mocks_for_aiohttp_clients.py index 7b7e97461704..5ad9ed0d6714 100644 --- a/packages/pytest-simcore/src/pytest_simcore/services_api_mocks_for_aiohttp_clients.py +++ b/packages/pytest-simcore/src/pytest_simcore/services_api_mocks_for_aiohttp_clients.py @@ -93,7 +93,7 @@ def create_computation_cb(url, **kwargs) -> CallbackResult: "62237c33-8d6c-4709-aa92-c3cf693dd6d2", "0bdf824f-57cb-4e38-949e-fd12c184f000", ] - node_states[node_id] = {"state": {"modified": True, "dependencies": []}} + node_states[node_id] = {"modified": True, "dependencies": []} node_states["62237c33-8d6c-4709-aa92-c3cf693dd6d2"] = { "modified": True, "dependencies": ["2f493631-30b4-4ad8-90f2-a74e4b46fe73"], @@ -105,10 +105,15 @@ def create_computation_cb(url, **kwargs) -> CallbackResult: "62237c33-8d6c-4709-aa92-c3cf693dd6d2", ], } - returned_computation = ComputationTask.model_validate( - ComputationTask.model_config["json_schema_extra"]["examples"][0] - ).model_copy( - update={ + + json_schema = ComputationTask.model_json_schema() + assert isinstance(json_schema["examples"], list) + assert isinstance( + json_schema["examples"][0], dict + ) + computation: dict[str, Any] = json_schema["examples"][0].copy() + computation.update( + { "id": f"{kwargs['json']['project_id']}", "state": state, "pipeline_details": { @@ -118,6 +123,10 @@ def create_computation_cb(url, **kwargs) -> CallbackResult: }, } ) + returned_computation = ComputationTask.model_validate( + computation + ) + return CallbackResult( status=201, # NOTE: aioresponses uses json.dump which does NOT encode serialization of UUIDs @@ -129,15 +138,20 @@ def get_computation_cb(url, **kwargs) -> CallbackResult: state = RunningState.NOT_STARTED pipeline: dict[str, list[str]] = FULL_PROJECT_PIPELINE_ADJACENCY node_states = FULL_PROJECT_NODE_STATES - assert "json_schema_extra" in ComputationGet.model_config - assert isinstance(ComputationGet.model_config["json_schema_extra"], dict) + + json_schema = ComputationGet.model_json_schema() assert isinstance( - ComputationGet.model_config["json_schema_extra"]["examples"], list + json_schema["examples"], list ) - returned_computation = ComputationGet.model_validate( - ComputationGet.model_config["json_schema_extra"]["examples"][0] - ).model_copy( - update={ + assert isinstance( + json_schema["examples"][0], dict + ) + + computation: dict[str, Any] = json_schema[ + "examples" + ][0].copy() + computation.update( + { "id": Path(url.path).name, "state": state, "pipeline_details": { @@ -147,6 +161,7 @@ def get_computation_cb(url, **kwargs) -> CallbackResult: }, } ) + returned_computation = ComputationGet.model_validate(computation) return CallbackResult( status=200, diff --git a/services/web/server/tests/unit/with_dbs/01/test_director_v2_handlers.py b/services/web/server/tests/unit/with_dbs/01/test_director_v2_handlers.py index 613e32cee193..cb40a779378a 100644 --- a/services/web/server/tests/unit/with_dbs/01/test_director_v2_handlers.py +++ b/services/web/server/tests/unit/with_dbs/01/test_director_v2_handlers.py @@ -58,12 +58,13 @@ async def test_start_partial_computation( project_id: ProjectID, user_role: UserRole, expected: ExpectedResponse, + faker: Faker, ): assert client.app url = client.app.router["start_computation"].url_for(project_id=f"{project_id}") rsp = await client.post( - f"{url}", json={"subgraph": ["node_id1", "node_id2", "node_id498"]} + f"{url}", json={"subgraph": [faker.uuid4(), faker.uuid4(), faker.uuid4()]} ) data, error = await assert_status( rsp,