@@ -401,30 +401,49 @@ def test_workflow_condition():
401401
402402
403403def test_workflow_parameterize (test_path ):
404- with dump_yaml_context (
405- test_path / "conf/demo/01_99_wf_test_wf_parameterize.yml" ,
406- data = """
407- tmp-wf-params-required:
408- type: Workflow
409- params:
410- name: {type: str, required: True}
411- jobs:
412- first-job:
413- stages:
414- - name: Echo
415- echo: "Hello ${{ params.name }}"
416- """ ,
417- ):
418- workflow : Workflow = Workflow .from_conf (name = "tmp-wf-params-required" )
419-
420- assert workflow .parameterize ({"name" : "foo" }) == {
421- "params" : {"name" : "foo" },
422- "jobs" : {},
404+ workflow = Workflow .model_validate (
405+ {
406+ "name" : "tmp-wf-params-required" ,
407+ "params" : {"name" : {"type" : "str" , "required" : True }},
408+ "jobs" : {
409+ "first-job" : {
410+ "stages" : [
411+ {"name" : "Echo" , "echo" : "Hello ${{ params.name }}" }
412+ ],
413+ },
414+ },
423415 }
416+ )
417+ assert workflow .parameterize ({"name" : "foo" }) == {
418+ "params" : {"name" : "foo" },
419+ "jobs" : {},
420+ }
424421
425- # NOTE: Raise if passing parameter that does not set on the workflow.
426- with pytest .raises (WorkflowError ):
427- workflow .parameterize ({"foo" : "bar" })
422+ # NOTE: Raise if passing parameter that does not set on the workflow.
423+ with pytest .raises (WorkflowError ):
424+ workflow .parameterize ({"foo" : "bar" })
425+
426+ workflow = Workflow .model_validate (
427+ {
428+ "name" : "tmp-wf-params-required" ,
429+ "params" : {"data" : {"type" : "map" , "required" : True }},
430+ "jobs" : {
431+ "first-job" : {
432+ "stages" : [
433+ {"name" : "Echo" , "echo" : "Hello ${{ params.data }}" }
434+ ],
435+ },
436+ },
437+ }
438+ )
439+ assert workflow .parameterize ({"data" : {"foo" : {"bar" : {"baz" : 1 }}}}) == {
440+ "params" : {"data" : {"foo" : {"bar" : {"baz" : 1 }}}},
441+ "jobs" : {},
442+ }
443+ assert workflow .parameterize ({"data" : '{"foo": {"bar": {"baz": 1}}}' }) == {
444+ "params" : {"data" : {"foo" : {"bar" : {"baz" : 1 }}}},
445+ "jobs" : {},
446+ }
428447
429448
430449def test_workflow_detail (test_path ):
0 commit comments