27 """A bare-bones unit test that doesn't load any generated code."""
47 serialized_desc = b
'\n\ntest.proto\"\x0e\n\x02M1*\x08\x08\x01\x10\x80\x80\x80\x80\x02:\x15\n\x08test_ext\x12\x03.M1\x18\x01 \x01(\x05'
48 pool = _message.DescriptorPool()
49 file_desc = pool.AddSerializedFile(serialized_desc)
50 self.assertEqual(
"test.proto", file_desc.name)
51 ext_desc = pool.FindExtensionByName(
"test_ext")
52 self.assertEqual(1, ext_desc.number)
56 self.assertIs(ext_desc, pool.FindExtensionByName(
"test_ext"))
62 print(_message._IS_UPB)
63 self.assertTrue(_message._IS_UPB)
64 self.assertEqual(api_implementation.Type(),
"cpp")
67 def test_slice(start, end, step):
68 vals = list(
range(20))
69 message = unittest_pb2.TestAllTypes(repeated_int32=vals)
70 del vals[start:end:step]
71 del message.repeated_int32[start:end:step]
72 self.assertEqual(vals, list(message.repeated_int32))
82 msg = unittest_pb2.TestAllTypes()
83 self.assertRaises(AttributeError, getattr, msg,
'Extensions')
86 msg = map_unittest_pb2.TestMapSubmessage()
87 int32_map = msg.test_map.map_int32_int32
88 msg.test_map.ClearField(
"map_int32_int32")
90 self.assertEqual(0, msg.test_map.ByteSize())
93 msg = map_unittest_pb2.TestMap()
94 int32_map = msg.map_int32_int32
96 msg.ClearField(
"map_int32_int32")
98 self.assertEqual(0, msg.ByteSize())
101 msg = unittest_pb2.NestedTestAllTypes()
102 int32_array = msg.payload.repeated_int32
103 msg.payload.ClearField(
"repeated_int32")
104 int32_array.append(123)
105 self.assertEqual(0, msg.payload.ByteSize())
108 msg = unittest_pb2.TestAllTypes()
109 int32_array = msg.repeated_int32
110 int32_array.append(123)
111 self.assertNotEqual(0, msg.ByteSize())
112 msg.ClearField(
"repeated_int32")
113 int32_array.append(123)
114 self.assertEqual(0, msg.ByteSize())
117 message = unittest_pb2.TestAllTypes()
118 message.optional_float = -0.0
119 self.assertEqual(
str(message),
'optional_float: -0\n')
123 msg = unittest_pb2.NestedTestAllTypes()
131 from google.protobuf.pyext._message
import SetAllowOversizeProtos
133 q = unittest_pb2.NestedTestAllTypes()
134 with self.assertRaises(message.DecodeError):
139 from google.protobuf.pyext._message
import SetAllowOversizeProtos
141 q = unittest_pb2.NestedTestAllTypes()
145 extendee_proto = more_extensions_pb2.ExtendedMessage()
147 extension_int32 = more_extensions_pb2.optional_int_extension
148 extendee_proto.Extensions[extension_int32] = 23
150 extension_repeated = more_extensions_pb2.repeated_int_extension
151 extendee_proto.Extensions[extension_repeated].append(11)
153 extension_msg = more_extensions_pb2.optional_message_extension
154 extendee_proto.Extensions[extension_msg].foreign_message_int = 56
157 extendee_proto.optional_int32 = 1
158 extendee_proto.repeated_string.append(
'hi')
161 extension_int32:
True,
163 extension_repeated:
True
166 for item
in extendee_proto.Extensions:
168 self.assertIn(item, extendee_proto.Extensions)
170 self.assertEqual(count, 3)
171 self.assertEqual(
len(expected), 0)
174 proto = unittest_pb2.TestRequiredForeign()
175 self.assertTrue(proto.IsInitialized())
176 self.assertFalse(proto.optional_message.IsInitialized())
178 self.assertFalse(proto.optional_message.IsInitialized(errors))
179 self.assertEqual([
'a',
'b',
'c'], errors)
180 self.assertRaises(message.EncodeError, proto.optional_message.SerializeToString)
182 if __name__ ==
'__main__':
183 unittest.main(verbosity=2)