Browse Source

PY26 tests compatibility
1, Some tests in reflection_test PY26 raise TypeError but other versions raise ValueError for convert negative long to unsigned
2, Change compare exception type to compare exception str for testDuplicateExtensionNumber. Original code raise 'Double registration of Extensions' is not an instance of (<type 'exceptions.AssertionError'>, <type 'exceptions.ValueError'>) for PY26 cpp implementation

t

Jie Luo 8 years ago
parent
commit
f5817b3056

+ 8 - 1
python/google/protobuf/internal/message_factory_test.py

@@ -183,7 +183,14 @@ class MessageFactoryTest(unittest.TestCase):
     with self.assertRaises(Exception) as cm:
       factory.GetMessages([f.name])
 
-    self.assertIsInstance(cm.exception, (AssertionError, ValueError))
+    self.assertIn(str(cm.exception),
+                  ['Extensions '
+                   '"google.protobuf.python.internal.Duplicate.extension_field" and'
+                   ' "google.protobuf.python.internal.Extension.extension_field"'
+                   ' both try to extend message type'
+                   ' "google.protobuf.python.internal.Container"'
+                   ' with field number 2.',
+                   'Double registration of Extensions'])
 
 
 if __name__ == '__main__':

+ 4 - 3
python/google/protobuf/internal/reflection_test.py

@@ -40,6 +40,7 @@ import gc
 import operator
 import six
 import struct
+import sys
 
 try:
   import unittest2 as unittest  #PY26
@@ -686,8 +687,8 @@ class ReflectionTest(BaseTestCase):
       self.assertEqual(expected_min, getattr(pb, field_name))
       setattr(pb, field_name, expected_max)
       self.assertEqual(expected_max, getattr(pb, field_name))
-      self.assertRaises(ValueError, setattr, pb, field_name, expected_min - 1)
-      self.assertRaises(ValueError, setattr, pb, field_name, expected_max + 1)
+      self.assertRaises(Exception, setattr, pb, field_name, expected_min - 1)
+      self.assertRaises(Exception, setattr, pb, field_name, expected_max + 1)
 
     TestMinAndMaxIntegers('optional_int32', -(1 << 31), (1 << 31) - 1)
     TestMinAndMaxIntegers('optional_uint32', 0, 0xffffffff)
@@ -696,7 +697,7 @@ class ReflectionTest(BaseTestCase):
     # A bit of white-box testing since -1 is an int and not a long in C++ and
     # so goes down a different path.
     pb = unittest_pb2.TestAllTypes()
-    with self.assertRaises(ValueError):
+    with self.assertRaises(Exception):
       pb.optional_uint64 = integer_fn(-(1 << 63))
 
     pb = unittest_pb2.TestAllTypes()