github.com/stackb/rules_proto@v0.0.0-20240221195024-5428336c51f1/pkg/plugin/builtin/python_plugin_test.go (about) 1 package builtin_test 2 3 import ( 4 "testing" 5 6 "github.com/stackb/rules_proto/pkg/plugin/builtin" 7 "github.com/stackb/rules_proto/pkg/plugintest" 8 ) 9 10 func TestPythonPlugin(t *testing.T) { 11 plugintest.Cases(t, &builtin.PythonPlugin{}, map[string]plugintest.Case{ 12 "empty file": { 13 Input: "", 14 Directives: plugintest.WithDirectives( 15 "proto_plugin", "python implementation builtin:python", 16 ), 17 PluginName: "python", 18 Configuration: plugintest.WithConfiguration( 19 plugintest.WithLabel(t, "@build_stack_rules_proto//plugin/builtin:python"), 20 plugintest.WithOutputs("test_pb2.py"), 21 ), 22 }, 23 "only services": { 24 Input: "service S{}", 25 Directives: plugintest.WithDirectives( 26 "proto_plugin", "python implementation builtin:python", 27 ), 28 PluginName: "python", 29 Configuration: plugintest.WithConfiguration( 30 plugintest.WithLabel(t, "@build_stack_rules_proto//plugin/builtin:python"), 31 plugintest.WithOutputs("test_pb2.py"), 32 ), 33 }, 34 "with a package": { 35 Input: "package pkg;\n\nmessage M{}", 36 Directives: plugintest.WithDirectives( 37 "proto_plugin", "python implementation builtin:python", 38 ), 39 PluginName: "python", 40 Configuration: plugintest.WithConfiguration( 41 plugintest.WithLabel(t, "@build_stack_rules_proto//plugin/builtin:python"), 42 plugintest.WithOutputs("test_pb2.py"), 43 ), 44 }, 45 "relative directory": { 46 Rel: "rel", 47 Input: "package a;\n\nmessage M{}", 48 Directives: plugintest.WithDirectives( 49 "proto_plugin", "python implementation builtin:python", 50 ), 51 PluginName: "python", 52 Configuration: plugintest.WithConfiguration( 53 plugintest.WithLabel(t, "@build_stack_rules_proto//plugin/builtin:python"), 54 plugintest.WithOutputs("rel/test_pb2.py"), 55 ), 56 }, 57 "basename replacement": { 58 Basename: "a-b*c+d=e|g!h#i", 59 Input: "message M{}", 60 Directives: plugintest.WithDirectives( 61 "proto_plugin", "python implementation builtin:python", 62 ), 63 PluginName: "python", 64 Configuration: plugintest.WithConfiguration( 65 plugintest.WithLabel(t, "@build_stack_rules_proto//plugin/builtin:python"), 66 plugintest.WithOutputs("a_b*c+d=e|g!h#i_pb2.py"), 67 ), 68 }, 69 }) 70 }