-
Notifications
You must be signed in to change notification settings - Fork 76
Closed
Labels
triage meI really want to be triaged.I really want to be triaged.
Description
Generate library with the following service proto:
// put this file in google/cloud/myservice/v1/
syntax = "proto3";
package myservice.v1;
import "google/protobuf/struct.proto";
import "google/api/client.proto";
service MyService {
option (google.api.default_host) = "my.example.com";
rpc MyMethod(MethodRequest) returns (MethodResponse) {
option (google.api.method_signature) = inputs,parameters";
}
}
message MethodRequest {
repeated google.protobuf.Value inputs = 1;
google.protobuf.Value parameters = 2;
}
message MethodResponse {
repeated google.protobuf.Value outputs = 1;
}
The generated unit test fails with:
# Merge in the value being set.
if pb_value is not None:
> self._pb.MergeFrom(self._meta.pb(**{key: pb_value}))
E TypeError: Value must be iterable
Variant: commenting out the repeated inputs field, the generated unit test fails with a different error:
_, args, _ = call.mock_calls[0]
> assert args[0].parameters == struct.Value(null_value=struct.NullValue.NULL_VALUE)
E AssertionError: assert None == null_value: NULL_VALUE\n
E + where None = parameters {\n null_value: NULL_VALUE\n}\n.parameters
E + and null_value: NULL_VALUE\n = <class 'google.protobuf.struct_pb2.Value'>(null_value=0)
E + where <class 'google.protobuf.struct_pb2.Value'> = struct.Value
E + and 0 = <google.protobuf.internal.enum_type_wrapper.EnumTypeWrapper object at 0x10ac9ce50>.NULL_VALUE
E + where <google.protobuf.internal.enum_type_wrapper.EnumTypeWrapper object at 0x10ac9ce50> = struct.NullValue
Metadata
Metadata
Assignees
Labels
triage meI really want to be triaged.I really want to be triaged.