Added an extension iteration test that does pass.

pull/13171/head
Joshua Haberman 3 years ago
parent 2fea0ea19d
commit 71bfff27cf
  1. 30
      python/minimal_test.py

@ -38,6 +38,7 @@ from google.protobuf import message_factory
from google.protobuf import message
from google.protobuf.internal import factory_test1_pb2
from google.protobuf.internal import factory_test2_pb2
from google.protobuf.internal import more_extensions_pb2
from google.protobuf import descriptor_pb2
class TestMessageExtension(unittest.TestCase):
@ -137,5 +138,34 @@ class OversizeProtosTest(unittest.TestCase):
q = unittest_pb2.NestedTestAllTypes()
q.ParseFromString(self.p_serialized)
def testExtensionIter(self):
extendee_proto = more_extensions_pb2.ExtendedMessage()
extension_int32 = more_extensions_pb2.optional_int_extension
extendee_proto.Extensions[extension_int32] = 23
extension_repeated = more_extensions_pb2.repeated_int_extension
extendee_proto.Extensions[extension_repeated].append(11)
extension_msg = more_extensions_pb2.optional_message_extension
extendee_proto.Extensions[extension_msg].foreign_message_int = 56
# Set some normal fields.
extendee_proto.optional_int32 = 1
extendee_proto.repeated_string.append('hi')
expected = {
extension_int32: True,
extension_msg: True,
extension_repeated: True
}
count = 0
for item in extendee_proto.Extensions:
del expected[item]
self.assertIn(item, extendee_proto.Extensions)
count += 1
self.assertEqual(count, 3)
self.assertEqual(len(expected), 0)
if __name__ == '__main__':
unittest.main(verbosity=2)

Loading…
Cancel
Save