@@ -4499,3 +4499,33 @@ def test_method_settings_invalid_multiple_issues():
44994499 assert re .match (".*squid.*not.*uuid4.*" , error_yaml [method_example1 ][1 ].lower ())
45004500 assert re .match (".*octopus.*not.*uuid4.*" , error_yaml [method_example1 ][2 ].lower ())
45014501 assert re .match (".*method.*not found.*" , error_yaml [method_example2 ][0 ].lower ())
4502+
4503+
4504+ def test_file_level_resources_with_aliases ():
4505+ """Proves that CLI aliases are passed down to file-level CommonResources."""
4506+ fdp = make_file_pb2 (
4507+ name = "nomenclature.proto" ,
4508+ package = "nomenclature.linneaen.v1" ,
4509+ messages = (
4510+ make_message_pb2 (
4511+ name = "CreateSpeciesRequest" ,
4512+ fields = (make_field_pb2 (name = "species" , number = 1 , type = 9 ),),
4513+ ),
4514+ ),
4515+ )
4516+ res_pb2 = fdp .options .Extensions [resource_pb2 .resource_definition ]
4517+ resource_definition = res_pb2 .add ()
4518+ resource_definition .type = "nomenclature.linnaen.com/Species"
4519+ resource_definition .pattern .append ("families/{family}/genera/{genus}/species/{species}" )
4520+
4521+ # Pass down the resource-name-alias cli option
4522+ opts = Options .build ("resource-name-alias=nomenclature.linnaen.com/Species:CustomSpecies" )
4523+
4524+ api_schema = api .API .build ([fdp ], package = "nomenclature.linneaen.v1" , opts = opts )
4525+
4526+ # Trigger the property that evaluates the CommonResource
4527+ resource_msgs = api_schema .protos ["nomenclature.proto" ].resource_messages
4528+
4529+ # Verify that the resource exists with the overriden type
4530+ assert "nomenclature.linnaen.com/Species" in resource_msgs
4531+ assert resource_msgs ["nomenclature.linnaen.com/Species" ].resource_type == "CustomSpecies"
0 commit comments