Added GetDebugString to Python FileDescriptor interface.

pull/7498/head
Peter Sobot 5 years ago committed by Peter Sobot
parent 8b69867fef
commit 4e176f29b4
  1. 25
      python/google/protobuf/internal/descriptor_test.py
  2. 5
      python/google/protobuf/pyext/descriptor.cc

@ -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,9 @@ class DescriptorTest(unittest.TestCase):
def testContainingServiceFixups(self):
self.assertEqual(self.my_service, self.my_method.containing_service)
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…
Cancel
Save