@@ -460,3 +460,101 @@ def test_build_process_dict_from_datacube(con100):
460460 "returns" : {"schema" : {"type" : "number" }},
461461 }
462462 assert actual == expected
463+
464+
465+ def test_build_process_dict_udf_context_param_field (con100 ):
466+ """https://github.com/Open-EO/openeo-python-client/issues/431"""
467+ udf_param = Parameter .number ("udf_param" )
468+ cube = con100 .datacube_from_process ("add" , x = 3 , y = 5 )
469+ udf = openeo .UDF (code = "print(123)" , runtime = "Python" , context = {"foo" : udf_param })
470+ cube = cube .apply (process = udf )
471+
472+ actual = build_process_dict (
473+ process_graph = cube ,
474+ process_id = "do_udf" ,
475+ summary = "do_udf value" ,
476+ description = "do_udf" ,
477+ parameters = [udf_param ],
478+ returns = {"schema" : {"type" : "number" }},
479+ )
480+ expected = {
481+ "id" : "do_udf" ,
482+ "description" : "do_udf" ,
483+ "parameters" : [{"name" : "udf_param" , "description" : "udf_param" , "schema" : {"type" : "number" }}],
484+ "process_graph" : {
485+ "add1" : {"arguments" : {"x" : 3 , "y" : 5 }, "process_id" : "add" },
486+ "apply1" : {
487+ "arguments" : {
488+ "data" : {"from_node" : "add1" },
489+ "process" : {
490+ "process_graph" : {
491+ "runudf1" : {
492+ "process_id" : "run_udf" ,
493+ "arguments" : {
494+ "data" : {"from_parameter" : "x" },
495+ "udf" : "print(123)" ,
496+ "runtime" : "Python" ,
497+ "context" : {"foo" : {"from_parameter" : "udf_param" }},
498+ },
499+ "result" : True ,
500+ }
501+ }
502+ },
503+ },
504+ "process_id" : "apply" ,
505+ "result" : True ,
506+ },
507+ },
508+ "returns" : {"schema" : {"type" : "number" }},
509+ "summary" : "do_udf value" ,
510+ }
511+ assert actual == expected
512+
513+
514+ def test_build_process_dict_udf_context_param_direct (con100 ):
515+ """https://github.com/Open-EO/openeo-python-client/issues/431"""
516+ udf_param = Parameter .number ("udf_param" )
517+ cube = con100 .datacube_from_process ("add" , x = 3 , y = 5 )
518+ udf = openeo .UDF (code = "print(123)" , runtime = "Python" , context = udf_param )
519+ cube = cube .apply (process = udf )
520+
521+ actual = build_process_dict (
522+ process_graph = cube ,
523+ process_id = "do_udf" ,
524+ summary = "do_udf value" ,
525+ description = "do_udf" ,
526+ parameters = [udf_param ],
527+ returns = {"schema" : {"type" : "number" }},
528+ )
529+ expected = {
530+ "id" : "do_udf" ,
531+ "description" : "do_udf" ,
532+ "parameters" : [{"name" : "udf_param" , "description" : "udf_param" , "schema" : {"type" : "number" }}],
533+ "process_graph" : {
534+ "add1" : {"arguments" : {"x" : 3 , "y" : 5 }, "process_id" : "add" },
535+ "apply1" : {
536+ "arguments" : {
537+ "data" : {"from_node" : "add1" },
538+ "process" : {
539+ "process_graph" : {
540+ "runudf1" : {
541+ "process_id" : "run_udf" ,
542+ "arguments" : {
543+ "data" : {"from_parameter" : "x" },
544+ "udf" : "print(123)" ,
545+ "runtime" : "Python" ,
546+ "context" : {"from_parameter" : "udf_param" },
547+ },
548+ "result" : True ,
549+ }
550+ }
551+ },
552+ },
553+ "process_id" : "apply" ,
554+ "result" : True ,
555+ },
556+ },
557+ "returns" : {"schema" : {"type" : "number" }},
558+ "summary" : "do_udf value" ,
559+ }
560+ assert actual == expected
0 commit comments