@@ -3900,3 +3900,100 @@ def test_create_grouping_partition_router_with_underlying_router():
39003900 assert isinstance (parent_stream_configs [0 ].stream , DeclarativeStream )
39013901 assert parent_stream_configs [0 ].parent_key .eval ({}) == "id"
39023902 assert parent_stream_configs [0 ].partition_field .eval ({}) == "repository_id"
3903+
3904+
3905+ def test_create_grouping_partition_router_invalid_group_size ():
3906+ """Test that an invalid group_size (< 1) raises a ValueError."""
3907+ content = """
3908+ schema_loader:
3909+ file_path: "./source_example/schemas/{{ parameters['name'] }}.yaml"
3910+ name: "{{ parameters['stream_name'] }}"
3911+ retriever:
3912+ requester:
3913+ type: "HttpRequester"
3914+ path: "example"
3915+ record_selector:
3916+ extractor:
3917+ field_path: []
3918+ stream_A:
3919+ type: DeclarativeStream
3920+ name: "A"
3921+ primary_key: "id"
3922+ $parameters:
3923+ retriever: "#/retriever"
3924+ url_base: "https://airbyte.io"
3925+ schema_loader: "#/schema_loader"
3926+ sub_partition_router:
3927+ type: SubstreamPartitionRouter
3928+ parent_stream_configs:
3929+ - stream: "#/stream_A"
3930+ parent_key: id
3931+ partition_field: repository_id
3932+ partition_router:
3933+ type: GroupingPartitionRouter
3934+ underlying_partition_router: "#/sub_partition_router"
3935+ group_size: 0
3936+ """
3937+ parsed_manifest = YamlDeclarativeSource ._parse (content )
3938+ resolved_manifest = resolver .preprocess_manifest (parsed_manifest )
3939+ partition_router_manifest = transformer .propagate_types_and_parameters (
3940+ "" , resolved_manifest ["partition_router" ], {}
3941+ )
3942+
3943+ with pytest .raises (ValueError , match = "Group size must be greater than 0, got 0" ):
3944+ factory .create_component (
3945+ model_type = GroupingPartitionRouterModel ,
3946+ component_definition = partition_router_manifest ,
3947+ config = input_config ,
3948+ )
3949+
3950+
3951+ def test_create_grouping_partition_router_substream_with_request_option ():
3952+ """Test that a SubstreamPartitionRouter with request_option raises a ValueError."""
3953+ content = """
3954+ schema_loader:
3955+ file_path: "./source_example/schemas/{{ parameters['name'] }}.yaml"
3956+ name: "{{ parameters['stream_name'] }}"
3957+ retriever:
3958+ requester:
3959+ type: "HttpRequester"
3960+ path: "example"
3961+ record_selector:
3962+ extractor:
3963+ field_path: []
3964+ stream_A:
3965+ type: DeclarativeStream
3966+ name: "A"
3967+ primary_key: "id"
3968+ $parameters:
3969+ retriever: "#/retriever"
3970+ url_base: "https://airbyte.io"
3971+ schema_loader: "#/schema_loader"
3972+ sub_partition_router:
3973+ type: SubstreamPartitionRouter
3974+ parent_stream_configs:
3975+ - stream: "#/stream_A"
3976+ parent_key: id
3977+ partition_field: repository_id
3978+ request_option:
3979+ inject_into: request_parameter
3980+ field_name: "repo_id"
3981+ partition_router:
3982+ type: GroupingPartitionRouter
3983+ underlying_partition_router: "#/sub_partition_router"
3984+ group_size: 2
3985+ """
3986+ parsed_manifest = YamlDeclarativeSource ._parse (content )
3987+ resolved_manifest = resolver .preprocess_manifest (parsed_manifest )
3988+ partition_router_manifest = transformer .propagate_types_and_parameters (
3989+ "" , resolved_manifest ["partition_router" ], {}
3990+ )
3991+
3992+ with pytest .raises (
3993+ ValueError , match = "Request options are not supported for GroupingPartitionRouter."
3994+ ):
3995+ factory .create_component (
3996+ model_type = GroupingPartitionRouterModel ,
3997+ component_definition = partition_router_manifest ,
3998+ config = input_config ,
3999+ )
0 commit comments