Skip to content

Commit 76a6f6e

Browse files
committed
fix tests
1 parent 20088b0 commit 76a6f6e

File tree

4 files changed

+51
-8
lines changed

4 files changed

+51
-8
lines changed

services/api-server/src/simcore_service_api_server/api/routes/function_jobs_routes.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -172,9 +172,11 @@ async def register_function_job(
172172
user_id: Annotated[UserID, Depends(get_current_user_id)],
173173
product_name: Annotated[ProductName, Depends(get_product_name)],
174174
) -> RegisteredFunctionJob:
175-
return await wb_api_rpc.register_function_job(
176-
function_job=function_job, user_id=user_id, product_name=product_name
175+
registered_jobs = await wb_api_rpc.register_function_job(
176+
function_jobs=[function_job], user_id=user_id, product_name=product_name
177177
)
178+
assert len(registered_jobs) == 1 # nosec
179+
return registered_jobs[0]
178180

179181

180182
@function_job_router.get(

services/api-server/src/simcore_service_api_server/api/routes/functions_routes.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
from ..._service_functions import FunctionService
2929
from ...models.pagination import Page, PaginationParams
3030
from ...models.schemas.errors import ErrorGet
31-
from ...models.schemas.jobs import JobPricingSpecification
31+
from ...models.schemas.jobs import JobInputs, JobPricingSpecification
3232
from ...services_rpc.wb_api_server import WbApiRpcClient
3333
from ..dependencies.authentication import (
3434
Identity,
@@ -305,7 +305,7 @@ async def validate_function_inputs(
305305
) -> tuple[bool, str]:
306306
return await function_job_service.validate_function_inputs(
307307
function=function,
308-
inputs=inputs,
308+
job_inputs=[JobInputs(values=inputs or {})],
309309
)
310310

311311

services/api-server/tests/unit/api_functions/test_api_routers_function_jobs.py

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
RegisteredProjectFunctionJob,
2121
)
2222
from models_library.functions import (
23+
FunctionJobList,
2324
FunctionJobStatus,
2425
RegisteredProjectFunction,
2526
RegisteredProjectFunctionJobWithStatus,
@@ -65,15 +66,23 @@ async def test_delete_function_job(
6566

6667
async def test_register_function_job(
6768
client: AsyncClient,
68-
mock_handler_in_functions_rpc_interface: Callable[[str, Any], None],
69+
mock_handler_in_functions_rpc_interface: Callable,
6970
fake_project_function_job: ProjectFunctionJob,
7071
fake_registered_project_function_job: RegisteredProjectFunctionJob,
7172
auth: httpx.BasicAuth,
7273
) -> None:
7374
"""Test the register_function_job endpoint."""
7475

76+
async def _register_function_job_side_effect(
77+
user_id: UserID,
78+
function_jobs: FunctionJobList,
79+
product_name: ProductName,
80+
):
81+
assert len(function_jobs) == 1
82+
return [fake_registered_project_function_job]
83+
7584
mock_handler_in_functions_rpc_interface(
76-
"register_function_job", fake_registered_project_function_job
85+
"register_function_job", side_effect=_register_function_job_side_effect
7786
)
7887

7988
response = await client.post(

services/api-server/tests/unit/api_functions/test_api_routers_functions.py

Lines changed: 34 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,18 +19,22 @@
1919
from httpx import AsyncClient
2020
from models_library.api_schemas_long_running_tasks.tasks import TaskGet
2121
from models_library.functions import (
22+
FunctionJobList,
2223
FunctionUserAccessRights,
2324
FunctionUserApiAccessRights,
2425
ProjectFunction,
2526
RegisteredFunction,
2627
RegisteredFunctionJob,
2728
RegisteredProjectFunction,
2829
RegisteredProjectFunctionJob,
30+
RegisteredProjectFunctionJobPatchInputList,
31+
RegisteredSolverFunctionJobPatchInputList,
2932
)
3033
from models_library.functions_errors import (
3134
FunctionIDNotFoundError,
3235
FunctionReadAccessDeniedError,
3336
)
37+
from models_library.products import ProductName
3438
from models_library.rest_pagination import PageMetaInfoLimitOffset
3539
from models_library.users import UserID
3640
from pydantic import EmailStr
@@ -471,8 +475,16 @@ def _default_side_effect(
471475
"get_function", fake_registered_project_function
472476
)
473477
mock_handler_in_functions_rpc_interface("find_cached_function_jobs", [])
478+
479+
async def _register_function_job_side_effect(
480+
user_id: UserID,
481+
function_jobs: FunctionJobList,
482+
product_name: ProductName,
483+
):
484+
return [fake_registered_project_function_job] * len(function_jobs)
485+
474486
mock_handler_in_functions_rpc_interface(
475-
"register_function_job", fake_registered_project_function_job
487+
"register_function_job", side_effect=_register_function_job_side_effect
476488
)
477489
mock_handler_in_functions_rpc_interface(
478490
"get_functions_user_api_access_rights",
@@ -483,8 +495,28 @@ def _default_side_effect(
483495
read_functions=True,
484496
),
485497
)
498+
499+
async def _patch_registered_function_job_side_effect(
500+
product_name: ProductName,
501+
user_id: UserID,
502+
registered_function_job_patch_inputs: (
503+
RegisteredProjectFunctionJobPatchInputList
504+
| RegisteredSolverFunctionJobPatchInputList
505+
),
506+
):
507+
return [
508+
fake_registered_project_function_job.model_copy(
509+
update={
510+
"job_creation_task_id": patch.patch.job_creation_task_id,
511+
"uid": patch.uid,
512+
}
513+
)
514+
for patch in registered_function_job_patch_inputs
515+
]
516+
486517
mock_handler_in_functions_rpc_interface(
487-
"patch_registered_function_job", fake_registered_project_function_job
518+
"patch_registered_function_job",
519+
side_effect=_patch_registered_function_job_side_effect,
488520
)
489521

490522
pre_registered_function_job_data = PreRegisteredFunctionJobData(

0 commit comments

Comments
 (0)