1717 FunctionClass ,
1818 FunctionJobCollection ,
1919 FunctionJobStatus ,
20+ RegisteredFunctionJob ,
21+ RegisteredFunctionJobPatch ,
2022 RegisteredProjectFunctionJobPatch ,
23+ RegisteredSolverFunctionJobPatch ,
24+ SolverFunctionJob ,
2125)
2226from models_library .functions_errors import (
2327 FunctionJobIDNotFoundError ,
@@ -442,6 +446,49 @@ async def test_find_cached_function_jobs(
442446 "user_role" ,
443447 [UserRole .USER ],
444448)
449+ @pytest .mark .parametrize (
450+ "function_job, patch" ,
451+ [
452+ (
453+ ProjectFunctionJob (
454+ function_uid = _faker .uuid4 (),
455+ title = "Test Function Job" ,
456+ description = "A test function job" ,
457+ project_job_id = None ,
458+ inputs = None ,
459+ outputs = None ,
460+ job_creation_task_id = None ,
461+ ),
462+ RegisteredProjectFunctionJobPatch (
463+ title = _faker .word (),
464+ description = _faker .sentence (),
465+ project_job_id = ProjectID (_faker .uuid4 ()),
466+ job_creation_task_id = TaskID (_faker .uuid4 ()),
467+ inputs = {"input1" : _faker .pyint (min_value = 0 , max_value = 1000 )},
468+ outputs = {"output1" : _faker .word ()},
469+ ),
470+ ),
471+ (
472+ SolverFunctionJob (
473+ function_uid = _faker .uuid4 (),
474+ title = "Test Function Job" ,
475+ description = "A test function job" ,
476+ inputs = None ,
477+ outputs = None ,
478+ job_creation_task_id = None ,
479+ solver_job_id = None ,
480+ ),
481+ RegisteredSolverFunctionJobPatch (
482+ title = _faker .word (),
483+ description = _faker .sentence (),
484+ job_creation_task_id = TaskID (_faker .uuid4 ()),
485+ inputs = {"input1" : _faker .pyint (min_value = 0 , max_value = 1000 )},
486+ outputs = {"output1" : _faker .word ()},
487+ solver_job_id = _faker .uuid4 (),
488+ ),
489+ ),
490+ ],
491+ )
445492async def test_patch_registered_function_jobs (
446493 client : TestClient ,
447494 rpc_client : RabbitMQRPCClient ,
@@ -451,56 +498,46 @@ async def test_patch_registered_function_jobs(
451498 osparc_product_name : ProductName ,
452499 mock_function_factory : Callable [[FunctionClass ], Function ],
453500 clean_functions : None ,
501+ function_job : RegisteredFunctionJob ,
502+ patch : RegisteredFunctionJobPatch ,
454503):
504+ function = mock_function_factory (function_job .function_class )
455505
456506 registered_function = await functions_rpc .register_function (
457507 rabbitmq_rpc_client = rpc_client ,
458- function = mock_function_factory ( FunctionClass . PROJECT ) ,
508+ function = function ,
459509 user_id = logged_user ["id" ],
460510 product_name = osparc_product_name ,
461511 )
462512
463- function_job = ProjectFunctionJob (
464- function_uid = registered_function .uid ,
465- title = "Test Function Job" ,
466- description = "A test function job" ,
467- project_job_id = None ,
468- inputs = None ,
469- outputs = None ,
470- job_creation_task_id = None ,
471- )
472-
473513 # Register the function job
514+ function_job .function_uid = registered_function .uid
474515 registered_job = await functions_rpc .register_function_job (
475516 rabbitmq_rpc_client = rpc_client ,
476517 function_job = function_job ,
477518 user_id = logged_user ["id" ],
478519 product_name = osparc_product_name ,
479520 )
480521
481- patch = RegisteredProjectFunctionJobPatch (
482- title = _faker .word (),
483- description = _faker .sentence (),
484- project_job_id = ProjectID (_faker .uuid4 ()),
485- job_creation_task_id = TaskID (_faker .uuid4 ()),
486- inputs = {"input1" : _faker .pyint (min_value = 0 , max_value = 1000 )},
487- outputs = {"output1" : _faker .word ()},
488- )
489-
490522 registered_job = await functions_rpc .patch_registered_function_job (
491523 rabbitmq_rpc_client = rpc_client ,
492524 user_id = logged_user ["id" ],
493525 function_job_uuid = registered_job .uid ,
494526 product_name = osparc_product_name ,
495527 registered_function_job_patch = patch ,
496528 )
497- assert registered_job .function_class == FunctionClass .PROJECT
498529 assert registered_job .title == patch .title
499530 assert registered_job .description == patch .description
500531 assert registered_job .inputs == patch .inputs
501532 assert registered_job .outputs == patch .outputs
502- assert registered_job .job_creation_task_id == patch .job_creation_task_id
503- assert registered_job .project_job_id == patch .project_job_id
533+ if isinstance (patch , RegisteredProjectFunctionJobPatch ):
534+ assert registered_job .function_class == FunctionClass .PROJECT
535+ assert registered_job .job_creation_task_id == patch .job_creation_task_id
536+ assert registered_job .project_job_id == patch .project_job_id
537+ if isinstance (patch , RegisteredSolverFunctionJobPatch ):
538+ assert registered_job .function_class == FunctionClass .SOLVER
539+ assert registered_job .job_creation_task_id == patch .job_creation_task_id
540+ assert registered_job .solver_job_id == patch .solver_job_id
504541
505542
506543@pytest .mark .parametrize (
0 commit comments