Skip to content

Commit 4b66957

Browse files
committed
start fixing tests
1 parent e29821b commit 4b66957

File tree

3 files changed

+78
-26
lines changed

3 files changed

+78
-26
lines changed

services/api-server/src/simcore_service_api_server/_service_function_jobs.py

Lines changed: 22 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,9 @@
1515
RegisteredFunction,
1616
RegisteredFunctionJob,
1717
RegisteredProjectFunctionJobPatch,
18+
RegisteredProjectFunctionJobPatchInput,
1819
RegisteredSolverFunctionJobPatch,
20+
RegisteredSolverFunctionJobPatchInput,
1921
SolverFunctionJob,
2022
)
2123
from models_library.functions_errors import (
@@ -215,24 +217,30 @@ async def patch_registered_function_job(
215217
for patch in patches:
216218
if patch.function_class == FunctionClass.PROJECT:
217219
patch_inputs.append(
218-
RegisteredProjectFunctionJobPatch(
219-
title=None,
220-
description=None,
221-
inputs=None,
222-
outputs=None,
223-
job_creation_task_id=patch.job_creation_task_id,
224-
project_job_id=patch.project_job_id,
220+
RegisteredProjectFunctionJobPatchInput(
221+
uid=patch.function_job_id,
222+
patch=RegisteredProjectFunctionJobPatch(
223+
title=None,
224+
description=None,
225+
inputs=None,
226+
outputs=None,
227+
job_creation_task_id=patch.job_creation_task_id,
228+
project_job_id=patch.project_job_id,
229+
),
225230
)
226231
)
227232
elif patch.function_class == FunctionClass.SOLVER:
228233
patch_inputs.append(
229-
RegisteredSolverFunctionJobPatch(
230-
title=None,
231-
description=None,
232-
inputs=None,
233-
outputs=None,
234-
job_creation_task_id=patch.job_creation_task_id,
235-
solver_job_id=patch.solver_job_id,
234+
RegisteredSolverFunctionJobPatchInput(
235+
uid=patch.function_job_id,
236+
patch=RegisteredSolverFunctionJobPatch(
237+
title=None,
238+
description=None,
239+
inputs=None,
240+
outputs=None,
241+
job_creation_task_id=patch.job_creation_task_id,
242+
solver_job_id=patch.solver_job_id,
243+
),
236244
)
237245
)
238246
else:

services/api-server/src/simcore_service_api_server/_service_function_jobs_task_client.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -317,7 +317,9 @@ async def create_function_job_creation_tasks(
317317
user_id=user_identity.user_id,
318318
product_name=user_identity.product_name,
319319
function_id=function.uid,
320-
inputs=TypeAdapter(FunctionInputsList).validate_python(inputs),
320+
inputs=TypeAdapter(FunctionInputsList).validate_python(
321+
[input_.values for input_ in inputs]
322+
),
321323
status_filter=[FunctionJobStatus(status=RunningState.SUCCESS)],
322324
)
323325

services/api-server/tests/unit/api_functions/celery/test_functions_celery.py

Lines changed: 53 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -26,17 +26,22 @@
2626
from models_library.functions import (
2727
FunctionClass,
2828
FunctionID,
29+
FunctionInputsList,
2930
FunctionJobCollection,
3031
FunctionJobID,
32+
FunctionJobList,
33+
FunctionJobStatus,
3134
FunctionUserAccessRights,
3235
FunctionUserApiAccessRights,
3336
RegisteredFunction,
3437
RegisteredFunctionJob,
3538
RegisteredFunctionJobCollection,
3639
RegisteredProjectFunction,
3740
RegisteredProjectFunctionJob,
38-
RegisteredProjectFunctionJobPatch,
41+
RegisteredProjectFunctionJobPatchInputList,
42+
RegisteredSolverFunctionJobPatchInputList,
3943
)
44+
from models_library.products import ProductName
4045
from models_library.projects import ProjectID
4146
from models_library.users import UserID
4247
from pytest_mock import MockType
@@ -151,15 +156,48 @@ def _(celery_app: Celery) -> None:
151156

152157

153158
async def _patch_registered_function_job_side_effect(
154-
mock_registered_project_function_job: RegisteredFunctionJob, *args, **kwargs
159+
mock_registered_project_function_job: RegisteredFunctionJob,
160+
product_name: ProductName,
161+
user_id: UserID,
162+
registered_function_job_patch_inputs: (
163+
RegisteredProjectFunctionJobPatchInputList
164+
| RegisteredSolverFunctionJobPatchInputList
165+
),
155166
):
156-
registered_function_job_patch = kwargs["registered_function_job_patch"]
157-
assert isinstance(registered_function_job_patch, RegisteredProjectFunctionJobPatch)
158-
job_creation_task_id = registered_function_job_patch.job_creation_task_id
159-
uid = kwargs["function_job_uuid"]
160-
return mock_registered_project_function_job.model_copy(
161-
update={"job_creation_task_id": job_creation_task_id, "uid": uid}
162-
)
167+
return [
168+
mock_registered_project_function_job.model_copy(
169+
update={
170+
"job_creation_task_id": patch.patch.job_creation_task_id,
171+
"uid": patch.uid,
172+
}
173+
)
174+
for patch in registered_function_job_patch_inputs
175+
]
176+
177+
178+
async def _find_cached_function_jobs_side_effect(
179+
*,
180+
user_id: UserID,
181+
product_name: ProductName,
182+
function_id: FunctionID,
183+
inputs: FunctionInputsList,
184+
status_filter: list[FunctionJobStatus] | None,
185+
):
186+
return [None] * len(inputs)
187+
188+
189+
async def _register_function_job_side_effect(
190+
registered_function_job: RegisteredFunctionJob,
191+
user_id: UserID,
192+
function_jobs: FunctionJobList,
193+
product_name: ProductName,
194+
):
195+
return [
196+
registered_function_job.model_copy(
197+
update={"uid": FunctionJobID(_faker.uuid4())}
198+
)
199+
for _ in function_jobs
200+
]
163201

164202

165203
@pytest.mark.parametrize("register_celery_tasks", [_register_fake_run_function_task()])
@@ -216,10 +254,14 @@ async def test_with_fake_run_function(
216254
"get_function", return_value=fake_registered_project_function
217255
)
218256
mock_handler_in_functions_rpc_interface(
219-
"find_cached_function_jobs", return_value=[]
257+
"find_cached_function_jobs", side_effect=_find_cached_function_jobs_side_effect
220258
)
221259
mock_handler_in_functions_rpc_interface(
222-
"register_function_job", return_value=fake_registered_project_function_job
260+
"register_function_job",
261+
side_effect=partial(
262+
_register_function_job_side_effect,
263+
fake_registered_project_function_job,
264+
),
223265
)
224266

225267
mock_handler_in_functions_rpc_interface(

0 commit comments

Comments
 (0)