Merge pull request #7498 from psobot/add-python-descriptor-debug-string
Add GetDebugString to Python FileDescriptor interface.
This commit is contained in:
commit
df5b7fabb8
@ -51,6 +51,28 @@ TEST_EMPTY_MESSAGE_DESCRIPTOR_ASCII = """
|
||||
name: 'TestEmptyMessage'
|
||||
"""
|
||||
|
||||
TEST_FILE_DESCRIPTOR_DEBUG = """syntax = "proto2";
|
||||
|
||||
package protobuf_unittest;
|
||||
|
||||
message NestedMessage {
|
||||
enum ForeignEnum {
|
||||
FOREIGN_FOO = 4;
|
||||
FOREIGN_BAR = 5;
|
||||
FOREIGN_BAZ = 6;
|
||||
}
|
||||
optional int32 bb = 1;
|
||||
}
|
||||
|
||||
message ResponseMessage {
|
||||
}
|
||||
|
||||
service Service {
|
||||
rpc CallMethod(.protobuf_unittest.NestedMessage) returns (.protobuf_unittest.ResponseMessage);
|
||||
}
|
||||
|
||||
"""
|
||||
|
||||
|
||||
warnings.simplefilter('error', DeprecationWarning)
|
||||
|
||||
@ -121,6 +143,13 @@ class DescriptorTest(unittest.TestCase):
|
||||
def testContainingServiceFixups(self):
|
||||
self.assertEqual(self.my_service, self.my_method.containing_service)
|
||||
|
||||
@unittest.skipIf(
|
||||
api_implementation.Type() != 'cpp',
|
||||
'GetDebugString is only available with the cpp implementation',
|
||||
)
|
||||
def testGetDebugString(self):
|
||||
self.assertEqual(self.my_file.GetDebugString(), TEST_FILE_DESCRIPTOR_DEBUG)
|
||||
|
||||
def testGetOptions(self):
|
||||
self.assertEqual(self.my_enum.GetOptions(),
|
||||
descriptor_pb2.EnumOptions())
|
||||
|
@ -1393,6 +1393,10 @@ static int SetHasOptions(PyFileDescriptor *self, PyObject *value,
|
||||
return CheckCalledFromGeneratedFile("has_options");
|
||||
}
|
||||
|
||||
static PyObject* GetDebugString(PyFileDescriptor *self) {
|
||||
return PyString_FromCppString(_GetDescriptor(self)->DebugString());
|
||||
}
|
||||
|
||||
static PyObject* GetOptions(PyFileDescriptor *self) {
|
||||
return GetOrBuildOptions(_GetDescriptor(self));
|
||||
}
|
||||
@ -1439,6 +1443,7 @@ static PyGetSetDef Getters[] = {
|
||||
};
|
||||
|
||||
static PyMethodDef Methods[] = {
|
||||
{ "GetDebugString", (PyCFunction)GetDebugString, METH_NOARGS, },
|
||||
{ "GetOptions", (PyCFunction)GetOptions, METH_NOARGS, },
|
||||
{ "CopyToProto", (PyCFunction)CopyToProto, METH_O, },
|
||||
{NULL}
|
||||
|
Loading…
Reference in New Issue
Block a user