From d58df3b902f912859b8c3c5bbc980ac2eb91067c Mon Sep 17 00:00:00 2001 From: Jie Luo Date: Thu, 3 Aug 2017 16:04:10 -0700 Subject: Add python 2.6 test back for cpp implementation. Json format issue was fixed in #869 --- tests.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tests.sh b/tests.sh index fa4a3479..a6bb55f8 100755 --- a/tests.sh +++ b/tests.sh @@ -294,8 +294,7 @@ build_python_cpp() { cd python # Only test Python 2.6/3.x on Linux 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 envlist=py27-cpp fi -- cgit v1.2.3 From 9150cd860302dfed741b54161243bbfe74b80584 Mon Sep 17 00:00:00 2001 From: Jie Luo Date: Fri, 4 Aug 2017 10:50:24 -0700 Subject: Skip setUpClass which is newly added in python2.7 for python2.6 --- python/google/protobuf/internal/message_test.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/python/google/protobuf/internal/message_test.py b/python/google/protobuf/internal/message_test.py index e8b794f0..f11bb6d6 100755 --- a/python/google/protobuf/internal/message_test.py +++ b/python/google/protobuf/internal/message_test.py @@ -1832,8 +1832,9 @@ class PackedFieldTest(BaseTestCase): 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): @classmethod -- cgit v1.2.3 From f5817b3056b1ef115a98909d75e54b7a5815a954 Mon Sep 17 00:00:00 2001 From: Jie Luo Date: Fri, 4 Aug 2017 14:15:17 -0700 Subject: 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 (, ) for PY26 cpp implementation t --- python/google/protobuf/internal/message_factory_test.py | 9 ++++++++- python/google/protobuf/internal/reflection_test.py | 7 ++++--- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/python/google/protobuf/internal/message_factory_test.py b/python/google/protobuf/internal/message_factory_test.py index 4caa2443..aa7af2d0 100644 --- a/python/google/protobuf/internal/message_factory_test.py +++ b/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__': diff --git a/python/google/protobuf/internal/reflection_test.py b/python/google/protobuf/internal/reflection_test.py index 55b0d72e..5ab5225e 100755 --- a/python/google/protobuf/internal/reflection_test.py +++ b/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() -- cgit v1.2.3