@@ -324,3 +324,38 @@ def test_transcode_with_required_fields_in_body_param():
324324 assert transcoded ["uri" ] == "/v1/test/my-name"
325325 assert "options" not in query_params
326326 assert query_params ["filter" ] == "default-filter"
327+
328+
329+ def test_transcode_required_fields_no_matching_option ():
330+ http_options = [{"method" : "get" , "uri" : "/v1/test" }]
331+ request = descriptor_pb2 .FieldDescriptorProto ()
332+ required_defaults = {"name" : "default-name" }
333+
334+ with mock .patch (
335+ "google.api_core.path_template.transcode" ,
336+ return_value = {"method" : "delete" , "uri" : "/v1/test" },
337+ ):
338+ _ , _ , query_params = transcode_request (
339+ http_options , request , required_fields_default_values = required_defaults
340+ )
341+ assert query_params ["name" ] == "default-name"
342+
343+
344+ def test_transcode_required_fields_uri_mismatch ():
345+ http_options = [
346+ {"method" : "get" , "uri" : "/v1/wrong_path/{name}" },
347+ {"method" : "get" , "uri" : "/v1/test/{name}" },
348+ ]
349+ request = descriptor_pb2 .FieldDescriptorProto ()
350+ request .name = "my-name"
351+ required_defaults = {"name" : "default-name" , "filter" : "default-filter" }
352+
353+ with mock .patch (
354+ "google.api_core.path_template.transcode" ,
355+ return_value = {"method" : "get" , "uri" : "/v1/test/my-name" },
356+ ):
357+ transcoded , _ , query_params = transcode_request (
358+ http_options , request , required_fields_default_values = required_defaults
359+ )
360+ assert "name" not in query_params
361+ assert query_params ["filter" ] == "default-filter"
0 commit comments