Commit 833c046f authored by Dan O'Reilly's avatar Dan O'Reilly

Fixing some tests

Signed-off-by: 's avatarDan O'Reilly <oreilldf@gmail.com>
parent e47cdd5a
...@@ -152,6 +152,8 @@ import types ...@@ -152,6 +152,8 @@ import types
import unittest import unittest
import uuid import uuid
import six
ADDR_RE = re.compile(r'\<([a-zA-Z0-9_\-\.]+) object at 0x[a-fA-F0-9]+\>') ADDR_RE = re.compile(r'\<([a-zA-Z0-9_\-\.]+) object at 0x[a-fA-F0-9]+\>')
_SEPARATOR = uuid.uuid1().hex _SEPARATOR = uuid.uuid1().hex
_FIRST_ARG = object() _FIRST_ARG = object()
...@@ -170,13 +172,13 @@ def _StrClass(cls): ...@@ -170,13 +172,13 @@ def _StrClass(cls):
def _NonStringIterable(obj): def _NonStringIterable(obj):
return (isinstance(obj, collections.Iterable) and not return (isinstance(obj, collections.Iterable) and not
isinstance(obj, basestring)) isinstance(obj, six.string_types))
def _FormatParameterList(testcase_params): def _FormatParameterList(testcase_params):
if isinstance(testcase_params, collections.Mapping): if isinstance(testcase_params, collections.Mapping):
return ', '.join('%s=%s' % (argname, _CleanRepr(value)) return ', '.join('%s=%s' % (argname, _CleanRepr(value))
for argname, value in testcase_params.iteritems()) for argname, value in testcase_params.items())
elif _NonStringIterable(testcase_params): elif _NonStringIterable(testcase_params):
return ', '.join(map(_CleanRepr, testcase_params)) return ', '.join(map(_CleanRepr, testcase_params))
else: else:
...@@ -258,7 +260,7 @@ def _ModifyClass(class_object, testcases, naming_type): ...@@ -258,7 +260,7 @@ def _ModifyClass(class_object, testcases, naming_type):
'Cannot add parameters to %s,' 'Cannot add parameters to %s,'
' which already has parameterized methods.' % (class_object,)) ' which already has parameterized methods.' % (class_object,))
class_object._id_suffix = id_suffix = {} class_object._id_suffix = id_suffix = {}
for name, obj in class_object.__dict__.items(): for name, obj in class_object.__dict__.copy().items():
if (name.startswith(unittest.TestLoader.testMethodPrefix) if (name.startswith(unittest.TestLoader.testMethodPrefix)
and isinstance(obj, types.FunctionType)): and isinstance(obj, types.FunctionType)):
delattr(class_object, name) delattr(class_object, name)
...@@ -266,7 +268,7 @@ def _ModifyClass(class_object, testcases, naming_type): ...@@ -266,7 +268,7 @@ def _ModifyClass(class_object, testcases, naming_type):
_UpdateClassDictForParamTestCase( _UpdateClassDictForParamTestCase(
methods, id_suffix, name, methods, id_suffix, name,
_ParameterizedTestIter(obj, testcases, naming_type)) _ParameterizedTestIter(obj, testcases, naming_type))
for name, meth in methods.iteritems(): for name, meth in methods.items():
setattr(class_object, name, meth) setattr(class_object, name, meth)
......
...@@ -59,7 +59,6 @@ import weakref ...@@ -59,7 +59,6 @@ import weakref
import six import six
import six.moves.copyreg as copyreg import six.moves.copyreg as copyreg
import six.string_types
# We use "as" to avoid name collisions with variables. # We use "as" to avoid name collisions with variables.
from google.protobuf.internal import containers from google.protobuf.internal import containers
...@@ -1120,7 +1119,7 @@ def _AddIsInitializedMethod(message_descriptor, cls): ...@@ -1120,7 +1119,7 @@ def _AddIsInitializedMethod(message_descriptor, cls):
# ScalarMaps can't have any initialization errors. # ScalarMaps can't have any initialization errors.
pass pass
elif field.label == _FieldDescriptor.LABEL_REPEATED: elif field.label == _FieldDescriptor.LABEL_REPEATED:
for i in xrange(len(value)): for i in range(len(value)):
element = value[i] element = value[i]
prefix = "%s[%d]." % (name, i) prefix = "%s[%d]." % (name, i)
sub_errors = element.FindInitializationErrors() sub_errors = element.FindInitializationErrors()
......
...@@ -1634,7 +1634,7 @@ class ReflectionTest(unittest.TestCase): ...@@ -1634,7 +1634,7 @@ class ReflectionTest(unittest.TestCase):
self.assertFalse(proto.IsInitialized(errors)) self.assertFalse(proto.IsInitialized(errors))
self.assertEqual(errors, ['a', 'b', 'c']) self.assertEqual(errors, ['a', 'b', 'c'])
@basetest.unittest.skipIf( @skipIf(
api_implementation.Type() != 'cpp' or api_implementation.Version() != 2, api_implementation.Type() != 'cpp' or api_implementation.Version() != 2,
'Errors are only available from the most recent C++ implementation.') 'Errors are only available from the most recent C++ implementation.')
def testFileDescriptorErrors(self): def testFileDescriptorErrors(self):
......
...@@ -88,41 +88,27 @@ def generate_proto(source, require = True): ...@@ -88,41 +88,27 @@ def generate_proto(source, require = True):
sys.exit(-1) sys.exit(-1)
def GenerateUnittestProtos(): def GenerateUnittestProtos():
generate_proto("../src/google/protobuf/unittest.proto") generate_proto("../src/google/protobuf/map_unittest.proto", False)
generate_proto("../src/google/protobuf/unittest_custom_options.proto") generate_proto("../src/google/protobuf/unittest.proto", False)
generate_proto("../src/google/protobuf/unittest_import.proto") generate_proto("../src/google/protobuf/unittest_custom_options.proto", False)
generate_proto("../src/google/protobuf/unittest_import_public.proto") generate_proto("../src/google/protobuf/unittest_import.proto", False)
generate_proto("../src/google/protobuf/unittest_mset.proto") generate_proto("../src/google/protobuf/unittest_import_public.proto", False)
generate_proto("../src/google/protobuf/unittest_no_generic_services.proto") generate_proto("../src/google/protobuf/unittest_mset.proto", False)
generate_proto("google/protobuf/internal/descriptor_pool_test1.proto") generate_proto("../src/google/protobuf/unittest_no_generic_services.proto", False)
generate_proto("google/protobuf/internal/descriptor_pool_test2.proto") generate_proto("../src/google/protobuf/unittest_proto3_arena.proto", False)
generate_proto("google/protobuf/internal/test_bad_identifiers.proto") generate_proto("google/protobuf/internal/descriptor_pool_test1.proto", False)
generate_proto("google/protobuf/internal/missing_enum_values.proto") generate_proto("google/protobuf/internal/descriptor_pool_test2.proto", False)
generate_proto("google/protobuf/internal/more_extensions.proto") generate_proto("google/protobuf/internal/factory_test1.proto", False)
generate_proto("google/protobuf/internal/more_extensions_dynamic.proto") generate_proto("google/protobuf/internal/factory_test2.proto", False)
generate_proto("google/protobuf/internal/more_messages.proto") generate_proto("google/protobuf/internal/import_test_package/inner.proto", False)
generate_proto("google/protobuf/internal/factory_test1.proto") generate_proto("google/protobuf/internal/import_test_package/outer.proto", False)
generate_proto("google/protobuf/internal/factory_test2.proto") generate_proto("google/protobuf/internal/missing_enum_values.proto", False)
generate_proto("google/protobuf/internal/import_test_package/inner.proto") generate_proto("google/protobuf/internal/more_extensions.proto", False)
generate_proto("google/protobuf/internal/import_test_package/outer.proto") generate_proto("google/protobuf/internal/more_extensions_dynamic.proto", False)
generate_proto("google/protobuf/pyext/python.proto") generate_proto("google/protobuf/internal/more_messages.proto", False)
generate_proto("google/protobuf/internal/test_bad_identifiers.proto", False)
def MakeTestSuite(): generate_proto("google/protobuf/pyext/python.proto", False)
# Test C++ implementation
import unittest
import google.protobuf.pyext.descriptor_cpp2_test as descriptor_cpp2_test
import google.protobuf.pyext.message_factory_cpp2_test \
as message_factory_cpp2_test
import google.protobuf.pyext.reflection_cpp2_generated_test \
as reflection_cpp2_generated_test
loader = unittest.defaultTestLoader
suite = unittest.TestSuite()
for test in [ descriptor_cpp2_test,
message_factory_cpp2_test,
reflection_cpp2_generated_test]:
suite.addTest(loader.loadTestsFromModule(test))
return suite
class clean(_clean): class clean(_clean):
def run(self): def run(self):
...@@ -153,6 +139,7 @@ class build_py(_build_py): ...@@ -153,6 +139,7 @@ class build_py(_build_py):
# _build_py is an old-style class, so super() doesn't work. # _build_py is an old-style class, so super() doesn't work.
_build_py.run(self) _build_py.run(self)
if __name__ == '__main__': if __name__ == '__main__':
ext_module_list = [] ext_module_list = []
cpp_impl = '--cpp_implementation' cpp_impl = '--cpp_implementation'
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment