@@ -571,9 +571,32 @@ def test_propagate_property_chunking():
571571 assert actual_component == expected_component
572572
573573
574- def test_use_parent_parameters_configuration ():
574+ @pytest .mark .parametrize (
575+ "use_parent_parameters, expected_retriever_name, expected_requester_name, expected_requester_params_name" ,
576+ [
577+ pytest .param (
578+ True ,
579+ "parent_priority" ,
580+ "component_priority" ,
581+ "parent_priority" ,
582+ id = "use_parent_parameters_true" ,
583+ ),
584+ pytest .param (
585+ False ,
586+ "parent_priority" ,
587+ "component_priority" ,
588+ "component_priority" ,
589+ id = "use_parent_parameters_false" ,
590+ ),
591+ ],
592+ )
593+ def test_use_parent_parameters_configuration (
594+ use_parent_parameters ,
595+ expected_retriever_name ,
596+ expected_requester_name ,
597+ expected_requester_params_name ,
598+ ):
575599 """Test that use_parent_parameters configuration controls parameter precedence."""
576- # Test with use_parent_parameters=True (parent parameters take precedence)
577600 component_with_parent_priority = {
578601 "type" : "DeclarativeStream" ,
579602 "retriever" : {
@@ -594,19 +617,19 @@ def test_use_parent_parameters_configuration():
594617 },
595618 }
596619
597- expected_with_parent_priority = {
620+ expected_component = {
598621 "type" : "DeclarativeStream" ,
599622 "retriever" : {
600623 "type" : "SimpleRetriever" ,
601- "name" : "parent_priority" , # Parent parameter takes precedence
624+ "name" : expected_retriever_name ,
602625 "requester" : {
603626 "type" : "HttpRequester" ,
604- "name" : "component_priority" , # Explicit value is not overridden
627+ "name" : expected_requester_name ,
605628 "url_base" : "https://coffee.example.io/v1/" ,
606629 "http_method" : "GET" ,
607630 "primary_key" : "id" ,
608631 "$parameters" : {
609- "name" : "parent_priority" , # Parent parameter propagated to nested component
632+ "name" : expected_requester_params_name ,
610633 },
611634 },
612635 "$parameters" : {
@@ -616,37 +639,10 @@ def test_use_parent_parameters_configuration():
616639 }
617640
618641 transformer = ManifestComponentTransformer ()
619- actual_with_parent_priority = transformer .propagate_types_and_parameters (
620- "" , component_with_parent_priority , {}, use_parent_parameters = True
642+ actual_component = transformer .propagate_types_and_parameters (
643+ "" , component_with_parent_priority , {}, use_parent_parameters = use_parent_parameters
621644 )
622- assert actual_with_parent_priority == expected_with_parent_priority
623-
624- # Test with use_parent_parameters=False (component parameters take precedence)
625- expected_with_component_priority = {
626- "type" : "DeclarativeStream" ,
627- "retriever" : {
628- "type" : "SimpleRetriever" ,
629- "name" : "parent_priority" , # Parent parameter takes precedence at this level
630- "requester" : {
631- "type" : "HttpRequester" ,
632- "name" : "component_priority" , # Component parameter takes precedence
633- "url_base" : "https://coffee.example.io/v1/" ,
634- "http_method" : "GET" ,
635- "primary_key" : "id" ,
636- "$parameters" : {
637- "name" : "component_priority" ,
638- },
639- },
640- "$parameters" : {
641- "name" : "parent_priority" ,
642- },
643- },
644- }
645-
646- actual_with_component_priority = transformer .propagate_types_and_parameters (
647- "" , component_with_parent_priority , {}, use_parent_parameters = False
648- )
649- assert actual_with_component_priority == expected_with_component_priority
645+ assert actual_component == expected_component
650646
651647
652648def test_use_parent_parameters_none_behavior ():
0 commit comments