Selaa lähdekoodia

Merge pull request #3454 from anandolee/master

Add python 2.6 test back for cpp implementation.
Jie Luo 8 vuotta sitten
vanhempi
commit
fae381693f

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

@@ -183,7 +183,14 @@ class MessageFactoryTest(unittest.TestCase):
     with self.assertRaises(Exception) as cm:
     with self.assertRaises(Exception) as cm:
       factory.GetMessages([f.name])
       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__':
 if __name__ == '__main__':

+ 3 - 2
python/google/protobuf/internal/message_test.py

@@ -1832,8 +1832,9 @@ class PackedFieldTest(BaseTestCase):
     self.assertEqual(golden_data, message.SerializeToString())
     self.assertEqual(golden_data, message.SerializeToString())
 
 
 
 
-@unittest.skipIf(api_implementation.Type() != 'cpp',
-                 'explicit tests of the C++ implementation')
+@unittest.skipIf(api_implementation.Type() != 'cpp' or
+                 sys.version_info < (2, 7),
+                 'explicit tests of the C++ implementation for PY27 and above')
 class OversizeProtosTest(BaseTestCase):
 class OversizeProtosTest(BaseTestCase):
 
 
   @classmethod
   @classmethod

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

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

+ 1 - 2
tests.sh

@@ -294,8 +294,7 @@ build_python_cpp() {
   cd python
   cd python
   # Only test Python 2.6/3.x on Linux
   # Only test Python 2.6/3.x on Linux
   if [ $(uname -s) == "Linux" ]; then
   if [ $(uname -s) == "Linux" ]; then
-    # py26 is currently disabled due to json_format
-    envlist=py\{27,33,34\}-cpp
+    envlist=py\{26,27,33,34\}-cpp
   else
   else
     envlist=py27-cpp
     envlist=py27-cpp
   fi
   fi