[PYTHON] Drop dependency on 'google.apputils'.
Use stdlib's 'unittest' instead.
This commit is contained in:
parent
dab96f19ee
commit
9f42f5f4a4
@ -11,9 +11,9 @@ script:
|
||||
- ./autogen.sh && ./configure && make -j2
|
||||
- cd java && mvn test && cd ..
|
||||
- cd javanano && mvn test && cd ..
|
||||
- cd python && python setup.py build && python setup.py google_test && cd ..
|
||||
- cd python && python setup.py build && python setup.py test && cd ..
|
||||
- export LD_LIBRARY_PATH=../src/.libs
|
||||
- cd python && python setup.py build --cpp_implementation && python setup.py google_test --cpp_implementation && cd ..
|
||||
- cd python && python setup.py build --cpp_implementation && python setup.py test --cpp_implementation && cd ..
|
||||
- make distcheck -j2
|
||||
notifications:
|
||||
email: false
|
||||
|
@ -50,7 +50,7 @@ Installation
|
||||
4) Build and run the tests:
|
||||
|
||||
$ python setup.py build
|
||||
$ python setup.py google_test
|
||||
$ python setup.py test
|
||||
|
||||
To build, test, and use the C++ implementation, you must first compile
|
||||
libprotobuf.so:
|
||||
@ -82,7 +82,7 @@ Installation
|
||||
$ python setup.py build --cpp_implementation
|
||||
|
||||
Then run the tests like so:
|
||||
$ python setup.py google_test --cpp_implementation
|
||||
$ python setup.py test --cpp_implementation
|
||||
|
||||
If some tests fail, this library may not work correctly on your
|
||||
system. Continue at your own risk.
|
||||
|
@ -152,8 +152,6 @@ import types
|
||||
import unittest
|
||||
import uuid
|
||||
|
||||
from google.apputils import basetest
|
||||
|
||||
ADDR_RE = re.compile(r'\<([a-zA-Z0-9_\-\.]+) object at 0x[a-fA-F0-9]+\>')
|
||||
_SEPARATOR = uuid.uuid1().hex
|
||||
_FIRST_ARG = object()
|
||||
@ -380,7 +378,7 @@ def _UpdateClassDictForParamTestCase(dct, id_suffix, name, iterator):
|
||||
id_suffix[new_name] = getattr(func, '__x_extra_id__', '')
|
||||
|
||||
|
||||
class ParameterizedTestCase(basetest.TestCase):
|
||||
class ParameterizedTestCase(unittest.TestCase):
|
||||
"""Base class for test cases using the Parameters decorator."""
|
||||
__metaclass__ = TestGeneratorMetaclass
|
||||
|
||||
|
@ -34,13 +34,14 @@
|
||||
|
||||
__author__ = 'matthewtoia@google.com (Matt Toia)'
|
||||
|
||||
from google.apputils import basetest
|
||||
import unittest
|
||||
|
||||
from google.protobuf import descriptor_pb2
|
||||
from google.protobuf.internal import factory_test2_pb2
|
||||
from google.protobuf import descriptor_database
|
||||
|
||||
|
||||
class DescriptorDatabaseTest(basetest.TestCase):
|
||||
class DescriptorDatabaseTest(unittest.TestCase):
|
||||
|
||||
def testAdd(self):
|
||||
db = descriptor_database.DescriptorDatabase()
|
||||
@ -62,4 +63,4 @@ class DescriptorDatabaseTest(basetest.TestCase):
|
||||
'google.protobuf.python.internal.MessageWithNestedEnumOnly.NestedEnum'))
|
||||
|
||||
if __name__ == '__main__':
|
||||
basetest.main()
|
||||
unittest.main()
|
||||
|
@ -37,7 +37,6 @@ __author__ = 'matthewtoia@google.com (Matt Toia)'
|
||||
import os
|
||||
import unittest
|
||||
|
||||
from google.apputils import basetest
|
||||
from google.protobuf import unittest_pb2
|
||||
from google.protobuf import descriptor_pb2
|
||||
from google.protobuf.internal import api_implementation
|
||||
@ -51,7 +50,7 @@ from google.protobuf import descriptor_pool
|
||||
from google.protobuf import symbol_database
|
||||
|
||||
|
||||
class DescriptorPoolTest(basetest.TestCase):
|
||||
class DescriptorPoolTest(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.pool = descriptor_pool.DescriptorPool()
|
||||
@ -426,7 +425,7 @@ class ExtensionField(object):
|
||||
test.assertEqual(self.extended_type, field_desc.containing_type.name)
|
||||
|
||||
|
||||
class AddDescriptorTest(basetest.TestCase):
|
||||
class AddDescriptorTest(unittest.TestCase):
|
||||
|
||||
def _TestMessage(self, prefix):
|
||||
pool = descriptor_pool.DescriptorPool()
|
||||
@ -588,4 +587,4 @@ TEST2_FILE = ProtoFile(
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
basetest.main()
|
||||
unittest.main()
|
||||
|
@ -35,8 +35,8 @@
|
||||
__author__ = 'robinson@google.com (Will Robinson)'
|
||||
|
||||
import sys
|
||||
import unittest
|
||||
|
||||
from google.apputils import basetest
|
||||
from google.protobuf import unittest_custom_options_pb2
|
||||
from google.protobuf import unittest_import_pb2
|
||||
from google.protobuf import unittest_pb2
|
||||
@ -52,7 +52,7 @@ name: 'TestEmptyMessage'
|
||||
"""
|
||||
|
||||
|
||||
class DescriptorTest(basetest.TestCase):
|
||||
class DescriptorTest(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
file_proto = descriptor_pb2.FileDescriptorProto(
|
||||
@ -390,7 +390,7 @@ class DescriptorTest(basetest.TestCase):
|
||||
self.assertEqual(self.my_file.name, 'some/filename/some.proto')
|
||||
self.assertEqual(self.my_file.package, 'protobuf_unittest')
|
||||
|
||||
@basetest.unittest.skipIf(
|
||||
@unittest.skipIf(
|
||||
api_implementation.Type() != 'cpp' or api_implementation.Version() != 2,
|
||||
'Immutability of descriptors is only enforced in v2 implementation')
|
||||
def testImmutableCppDescriptor(self):
|
||||
@ -403,7 +403,7 @@ class DescriptorTest(basetest.TestCase):
|
||||
message_descriptor.fields.append(None)
|
||||
|
||||
|
||||
class GeneratedDescriptorTest(basetest.TestCase):
|
||||
class GeneratedDescriptorTest(unittest.TestCase):
|
||||
"""Tests for the properties of descriptors in generated code."""
|
||||
|
||||
def CheckMessageDescriptor(self, message_descriptor):
|
||||
@ -493,7 +493,7 @@ class GeneratedDescriptorTest(basetest.TestCase):
|
||||
self.assertEqual('FOO', next(values_iter).name)
|
||||
|
||||
|
||||
class DescriptorCopyToProtoTest(basetest.TestCase):
|
||||
class DescriptorCopyToProtoTest(unittest.TestCase):
|
||||
"""Tests for CopyTo functions of Descriptor."""
|
||||
|
||||
def _AssertProtoEqual(self, actual_proto, expected_class, expected_ascii):
|
||||
@ -694,7 +694,7 @@ class DescriptorCopyToProtoTest(basetest.TestCase):
|
||||
# TEST_SERVICE_ASCII)
|
||||
|
||||
|
||||
class MakeDescriptorTest(basetest.TestCase):
|
||||
class MakeDescriptorTest(unittest.TestCase):
|
||||
|
||||
def testMakeDescriptorWithNestedFields(self):
|
||||
file_descriptor_proto = descriptor_pb2.FileDescriptorProto()
|
||||
@ -776,4 +776,4 @@ class MakeDescriptorTest(basetest.TestCase):
|
||||
options.Extensions[unittest_custom_options_pb2.msgopt].i)
|
||||
|
||||
if __name__ == '__main__':
|
||||
basetest.main()
|
||||
unittest.main()
|
||||
|
@ -41,7 +41,8 @@ further ensures that we can use Python protocol message objects as we expect.
|
||||
|
||||
__author__ = 'robinson@google.com (Will Robinson)'
|
||||
|
||||
from google.apputils import basetest
|
||||
import unittest
|
||||
|
||||
from google.protobuf.internal import test_bad_identifiers_pb2
|
||||
from google.protobuf import unittest_custom_options_pb2
|
||||
from google.protobuf import unittest_import_pb2
|
||||
@ -55,7 +56,7 @@ from google.protobuf import symbol_database
|
||||
MAX_EXTENSION = 536870912
|
||||
|
||||
|
||||
class GeneratorTest(basetest.TestCase):
|
||||
class GeneratorTest(unittest.TestCase):
|
||||
|
||||
def testNestedMessageDescriptor(self):
|
||||
field_name = 'optional_nested_message'
|
||||
@ -291,7 +292,7 @@ class GeneratorTest(basetest.TestCase):
|
||||
self.assertIs(desc.oneofs[0], desc.oneofs_by_name['oneof_field'])
|
||||
nested_names = set(['oneof_uint32', 'oneof_nested_message',
|
||||
'oneof_string', 'oneof_bytes'])
|
||||
self.assertSameElements(
|
||||
self.assertItemsEqual(
|
||||
nested_names,
|
||||
[field.name for field in desc.oneofs[0].fields])
|
||||
for field_name, field_desc in desc.fields_by_name.iteritems():
|
||||
@ -301,7 +302,7 @@ class GeneratorTest(basetest.TestCase):
|
||||
self.assertIsNone(field_desc.containing_oneof)
|
||||
|
||||
|
||||
class SymbolDatabaseRegistrationTest(basetest.TestCase):
|
||||
class SymbolDatabaseRegistrationTest(unittest.TestCase):
|
||||
"""Checks that messages, enums and files are correctly registered."""
|
||||
|
||||
def testGetSymbol(self):
|
||||
@ -340,4 +341,4 @@ class SymbolDatabaseRegistrationTest(basetest.TestCase):
|
||||
'google/protobuf/unittest.proto').name)
|
||||
|
||||
if __name__ == '__main__':
|
||||
basetest.main()
|
||||
unittest.main()
|
||||
|
@ -34,7 +34,8 @@
|
||||
|
||||
__author__ = 'matthewtoia@google.com (Matt Toia)'
|
||||
|
||||
from google.apputils import basetest
|
||||
import unittest
|
||||
|
||||
from google.protobuf import descriptor_pb2
|
||||
from google.protobuf.internal import factory_test1_pb2
|
||||
from google.protobuf.internal import factory_test2_pb2
|
||||
@ -43,7 +44,7 @@ from google.protobuf import descriptor_pool
|
||||
from google.protobuf import message_factory
|
||||
|
||||
|
||||
class MessageFactoryTest(basetest.TestCase):
|
||||
class MessageFactoryTest(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.factory_test1_fd = descriptor_pb2.FileDescriptorProto.FromString(
|
||||
@ -104,17 +105,18 @@ class MessageFactoryTest(basetest.TestCase):
|
||||
for _ in range(2):
|
||||
messages = message_factory.GetMessages([self.factory_test2_fd,
|
||||
self.factory_test1_fd])
|
||||
self.assertContainsSubset(
|
||||
['google.protobuf.python.internal.Factory2Message',
|
||||
'google.protobuf.python.internal.Factory1Message'],
|
||||
messages.keys())
|
||||
self.assertTrue(
|
||||
set(['google.protobuf.python.internal.Factory2Message',
|
||||
'google.protobuf.python.internal.Factory1Message'],
|
||||
).issubset(set(messages.keys())))
|
||||
self._ExerciseDynamicClass(
|
||||
messages['google.protobuf.python.internal.Factory2Message'])
|
||||
self.assertContainsSubset(
|
||||
['google.protobuf.python.internal.Factory2Message.one_more_field',
|
||||
'google.protobuf.python.internal.another_field'],
|
||||
(messages['google.protobuf.python.internal.Factory1Message']
|
||||
._extensions_by_name.keys()))
|
||||
self.assertTrue(
|
||||
set(['google.protobuf.python.internal.Factory2Message.one_more_field',
|
||||
'google.protobuf.python.internal.another_field'],
|
||||
).issubset(
|
||||
set(messages['google.protobuf.python.internal.Factory1Message']
|
||||
._extensions_by_name.keys())))
|
||||
factory_msg1 = messages['google.protobuf.python.internal.Factory1Message']
|
||||
msg1 = messages['google.protobuf.python.internal.Factory1Message']()
|
||||
ext1 = factory_msg1._extensions_by_name[
|
||||
@ -128,4 +130,4 @@ class MessageFactoryTest(basetest.TestCase):
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
basetest.main()
|
||||
unittest.main()
|
||||
|
@ -50,7 +50,6 @@ import pickle
|
||||
import sys
|
||||
import unittest
|
||||
|
||||
from google.apputils import basetest
|
||||
from google.protobuf.internal import _parameterized
|
||||
from google.protobuf import unittest_pb2
|
||||
from google.protobuf import unittest_proto3_arena_pb2
|
||||
@ -75,7 +74,7 @@ def IsNegInf(val):
|
||||
@_parameterized.Parameters(
|
||||
(unittest_pb2),
|
||||
(unittest_proto3_arena_pb2))
|
||||
class MessageTest(basetest.TestCase):
|
||||
class MessageTest(unittest.TestCase):
|
||||
|
||||
def testBadUtf8String(self, message_module):
|
||||
if api_implementation.Type() != 'python':
|
||||
@ -887,7 +886,7 @@ class MessageTest(basetest.TestCase):
|
||||
|
||||
|
||||
# Class to test proto2-only features (required, extensions, etc.)
|
||||
class Proto2Test(basetest.TestCase):
|
||||
class Proto2Test(unittest.TestCase):
|
||||
|
||||
def testFieldPresence(self):
|
||||
message = unittest_pb2.TestAllTypes()
|
||||
@ -1037,7 +1036,7 @@ class Proto2Test(basetest.TestCase):
|
||||
|
||||
|
||||
# Class to test proto3-only features/behavior (updated field presence & enums)
|
||||
class Proto3Test(basetest.TestCase):
|
||||
class Proto3Test(unittest.TestCase):
|
||||
|
||||
def testFieldPresence(self):
|
||||
message = unittest_proto3_arena_pb2.TestAllTypes()
|
||||
@ -1115,7 +1114,7 @@ class Proto3Test(basetest.TestCase):
|
||||
self.assertEqual(7654321, m2.repeated_nested_enum[0])
|
||||
|
||||
|
||||
class ValidTypeNamesTest(basetest.TestCase):
|
||||
class ValidTypeNamesTest(unittest.TestCase):
|
||||
|
||||
def assertImportFromName(self, msg, base_name):
|
||||
# Parse <type 'module.class_name'> to extra 'some.name' as a string.
|
||||
@ -1138,4 +1137,4 @@ class ValidTypeNamesTest(basetest.TestCase):
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
basetest.main()
|
||||
unittest.main()
|
||||
|
@ -32,7 +32,7 @@
|
||||
|
||||
"""Tests for google.protobuf.proto_builder."""
|
||||
|
||||
from google.apputils import basetest
|
||||
import unittest
|
||||
|
||||
from google.protobuf import descriptor_pb2
|
||||
from google.protobuf import descriptor_pool
|
||||
@ -40,7 +40,7 @@ from google.protobuf import proto_builder
|
||||
from google.protobuf import text_format
|
||||
|
||||
|
||||
class ProtoBuilderTest(basetest.TestCase):
|
||||
class ProtoBuilderTest(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self._fields = {
|
||||
@ -74,4 +74,4 @@ class ProtoBuilderTest(basetest.TestCase):
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
basetest.main()
|
||||
unittest.main()
|
||||
|
@ -39,8 +39,8 @@ import copy
|
||||
import gc
|
||||
import operator
|
||||
import struct
|
||||
import unittest
|
||||
|
||||
from google.apputils import basetest
|
||||
from google.protobuf import unittest_import_pb2
|
||||
from google.protobuf import unittest_mset_pb2
|
||||
from google.protobuf import unittest_pb2
|
||||
@ -102,7 +102,7 @@ class _MiniDecoder(object):
|
||||
return self._pos == len(self._bytes)
|
||||
|
||||
|
||||
class ReflectionTest(basetest.TestCase):
|
||||
class ReflectionTest(unittest.TestCase):
|
||||
|
||||
def assertListsEqual(self, values, others):
|
||||
self.assertEqual(len(values), len(others))
|
||||
@ -1619,7 +1619,7 @@ class ReflectionTest(basetest.TestCase):
|
||||
self.assertFalse(proto.IsInitialized(errors))
|
||||
self.assertEqual(errors, ['a', 'b', 'c'])
|
||||
|
||||
@basetest.unittest.skipIf(
|
||||
@unittest.skipIf(
|
||||
api_implementation.Type() != 'cpp' or api_implementation.Version() != 2,
|
||||
'Errors are only available from the most recent C++ implementation.')
|
||||
def testFileDescriptorErrors(self):
|
||||
@ -1792,7 +1792,7 @@ class ReflectionTest(basetest.TestCase):
|
||||
# Just check the default value.
|
||||
self.assertEqual(57, msg.inner.value)
|
||||
|
||||
@basetest.unittest.skipIf(
|
||||
@unittest.skipIf(
|
||||
api_implementation.Type() != 'cpp' or api_implementation.Version() != 2,
|
||||
'CPPv2-specific test')
|
||||
def testBadArguments(self):
|
||||
@ -1808,7 +1808,7 @@ class ReflectionTest(basetest.TestCase):
|
||||
# into separate TestCase classes.
|
||||
|
||||
|
||||
class TestAllTypesEqualityTest(basetest.TestCase):
|
||||
class TestAllTypesEqualityTest(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.first_proto = unittest_pb2.TestAllTypes()
|
||||
@ -1824,7 +1824,7 @@ class TestAllTypesEqualityTest(basetest.TestCase):
|
||||
self.assertEqual(self.first_proto, self.second_proto)
|
||||
|
||||
|
||||
class FullProtosEqualityTest(basetest.TestCase):
|
||||
class FullProtosEqualityTest(unittest.TestCase):
|
||||
|
||||
"""Equality tests using completely-full protos as a starting point."""
|
||||
|
||||
@ -1910,7 +1910,7 @@ class FullProtosEqualityTest(basetest.TestCase):
|
||||
self.assertEqual(self.first_proto, self.second_proto)
|
||||
|
||||
|
||||
class ExtensionEqualityTest(basetest.TestCase):
|
||||
class ExtensionEqualityTest(unittest.TestCase):
|
||||
|
||||
def testExtensionEquality(self):
|
||||
first_proto = unittest_pb2.TestAllExtensions()
|
||||
@ -1943,7 +1943,7 @@ class ExtensionEqualityTest(basetest.TestCase):
|
||||
self.assertEqual(first_proto, second_proto)
|
||||
|
||||
|
||||
class MutualRecursionEqualityTest(basetest.TestCase):
|
||||
class MutualRecursionEqualityTest(unittest.TestCase):
|
||||
|
||||
def testEqualityWithMutualRecursion(self):
|
||||
first_proto = unittest_pb2.TestMutualRecursionA()
|
||||
@ -1955,7 +1955,7 @@ class MutualRecursionEqualityTest(basetest.TestCase):
|
||||
self.assertEqual(first_proto, second_proto)
|
||||
|
||||
|
||||
class ByteSizeTest(basetest.TestCase):
|
||||
class ByteSizeTest(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.proto = unittest_pb2.TestAllTypes()
|
||||
@ -2251,7 +2251,7 @@ class ByteSizeTest(basetest.TestCase):
|
||||
# * Handling of empty submessages (with and without "has"
|
||||
# bits set).
|
||||
|
||||
class SerializationTest(basetest.TestCase):
|
||||
class SerializationTest(unittest.TestCase):
|
||||
|
||||
def testSerializeEmtpyMessage(self):
|
||||
first_proto = unittest_pb2.TestAllTypes()
|
||||
@ -2802,7 +2802,7 @@ class SerializationTest(basetest.TestCase):
|
||||
self.assertEqual(3, proto.repeated_int32[2])
|
||||
|
||||
|
||||
class OptionsTest(basetest.TestCase):
|
||||
class OptionsTest(unittest.TestCase):
|
||||
|
||||
def testMessageOptions(self):
|
||||
proto = unittest_mset_pb2.TestMessageSet()
|
||||
@ -2829,9 +2829,9 @@ class OptionsTest(basetest.TestCase):
|
||||
|
||||
|
||||
|
||||
class ClassAPITest(basetest.TestCase):
|
||||
class ClassAPITest(unittest.TestCase):
|
||||
|
||||
@basetest.unittest.skipIf(
|
||||
@unittest.skipIf(
|
||||
api_implementation.Type() == 'cpp' and api_implementation.Version() == 2,
|
||||
'C++ implementation requires a call to MakeDescriptor()')
|
||||
def testMakeClassWithNestedDescriptor(self):
|
||||
@ -2963,4 +2963,4 @@ class ClassAPITest(basetest.TestCase):
|
||||
self.assertEqual(msg.bar.baz.deep, 4)
|
||||
|
||||
if __name__ == '__main__':
|
||||
basetest.main()
|
||||
unittest.main()
|
||||
|
@ -34,13 +34,14 @@
|
||||
|
||||
__author__ = 'petar@google.com (Petar Petrov)'
|
||||
|
||||
from google.apputils import basetest
|
||||
import unittest
|
||||
|
||||
from google.protobuf import unittest_pb2
|
||||
from google.protobuf import service_reflection
|
||||
from google.protobuf import service
|
||||
|
||||
|
||||
class FooUnitTest(basetest.TestCase):
|
||||
class FooUnitTest(unittest.TestCase):
|
||||
|
||||
def testService(self):
|
||||
class MockRpcChannel(service.RpcChannel):
|
||||
@ -133,4 +134,4 @@ class FooUnitTest(basetest.TestCase):
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
basetest.main()
|
||||
unittest.main()
|
||||
|
@ -32,12 +32,13 @@
|
||||
|
||||
"""Tests for google.protobuf.symbol_database."""
|
||||
|
||||
from google.apputils import basetest
|
||||
import unittest
|
||||
|
||||
from google.protobuf import unittest_pb2
|
||||
from google.protobuf import symbol_database
|
||||
|
||||
|
||||
class SymbolDatabaseTest(basetest.TestCase):
|
||||
class SymbolDatabaseTest(unittest.TestCase):
|
||||
|
||||
def _Database(self):
|
||||
db = symbol_database.SymbolDatabase()
|
||||
@ -117,4 +118,4 @@ class SymbolDatabaseTest(basetest.TestCase):
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
basetest.main()
|
||||
unittest.main()
|
||||
|
@ -32,7 +32,8 @@
|
||||
|
||||
"""Tests for google.protobuf.text_encoding."""
|
||||
|
||||
from google.apputils import basetest
|
||||
import unittest
|
||||
|
||||
from google.protobuf import text_encoding
|
||||
|
||||
TEST_VALUES = [
|
||||
@ -50,7 +51,7 @@ TEST_VALUES = [
|
||||
b"\010\011\012\013\014\015")]
|
||||
|
||||
|
||||
class TextEncodingTestCase(basetest.TestCase):
|
||||
class TextEncodingTestCase(unittest.TestCase):
|
||||
def testCEscape(self):
|
||||
for escaped, escaped_utf8, unescaped in TEST_VALUES:
|
||||
self.assertEquals(escaped,
|
||||
@ -65,4 +66,4 @@ class TextEncodingTestCase(basetest.TestCase):
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
basetest.main()
|
||||
unittest.main()
|
||||
|
@ -35,8 +35,8 @@
|
||||
__author__ = 'kenton@google.com (Kenton Varda)'
|
||||
|
||||
import re
|
||||
import unittest
|
||||
|
||||
from google.apputils import basetest
|
||||
from google.protobuf.internal import _parameterized
|
||||
|
||||
from google.protobuf import unittest_mset_pb2
|
||||
@ -47,7 +47,7 @@ from google.protobuf.internal import test_util
|
||||
from google.protobuf import text_format
|
||||
|
||||
# Base class with some common functionality.
|
||||
class TextFormatBase(basetest.TestCase):
|
||||
class TextFormatBase(unittest.TestCase):
|
||||
|
||||
def ReadGolden(self, golden_filename):
|
||||
with test_util.GoldenFile(golden_filename) as f:
|
||||
@ -312,12 +312,12 @@ class TextFormatTest(TextFormatBase):
|
||||
def testParseGroupNotClosed(self, message_module):
|
||||
message = message_module.TestAllTypes()
|
||||
text = 'RepeatedGroup: <'
|
||||
self.assertRaisesWithLiteralMatch(
|
||||
self.assertRaisesRegexp(
|
||||
text_format.ParseError, '1:16 : Expected ">".',
|
||||
text_format.Parse, text, message)
|
||||
|
||||
text = 'RepeatedGroup: {'
|
||||
self.assertRaisesWithLiteralMatch(
|
||||
self.assertRaisesRegexp(
|
||||
text_format.ParseError, '1:16 : Expected "}".',
|
||||
text_format.Parse, text, message)
|
||||
|
||||
@ -354,7 +354,7 @@ class TextFormatTest(TextFormatBase):
|
||||
def testParseBadIntValue(self, message_module):
|
||||
message = message_module.TestAllTypes()
|
||||
text = 'optional_int32: bork'
|
||||
self.assertRaisesWithLiteralMatch(
|
||||
self.assertRaisesRegexp(
|
||||
text_format.ParseError,
|
||||
('1:17 : Couldn\'t parse integer: bork'),
|
||||
text_format.Parse, text, message)
|
||||
@ -569,12 +569,12 @@ class Proto2Tests(TextFormatBase):
|
||||
def testParseBadExtension(self):
|
||||
message = unittest_pb2.TestAllExtensions()
|
||||
text = '[unknown_extension]: 8\n'
|
||||
self.assertRaisesWithLiteralMatch(
|
||||
self.assertRaisesRegexp(
|
||||
text_format.ParseError,
|
||||
'1:2 : Extension "unknown_extension" not registered.',
|
||||
text_format.Parse, text, message)
|
||||
message = unittest_pb2.TestAllTypes()
|
||||
self.assertRaisesWithLiteralMatch(
|
||||
self.assertRaisesRegexp(
|
||||
text_format.ParseError,
|
||||
('1:2 : Message type "protobuf_unittest.TestAllTypes" does not have '
|
||||
'extensions.'),
|
||||
@ -593,7 +593,7 @@ class Proto2Tests(TextFormatBase):
|
||||
message = unittest_pb2.TestAllExtensions()
|
||||
text = ('[protobuf_unittest.optional_int32_extension]: 42 '
|
||||
'[protobuf_unittest.optional_int32_extension]: 67')
|
||||
self.assertRaisesWithLiteralMatch(
|
||||
self.assertRaisesRegexp(
|
||||
text_format.ParseError,
|
||||
('1:96 : Message type "protobuf_unittest.TestAllExtensions" '
|
||||
'should not have multiple '
|
||||
@ -604,7 +604,7 @@ class Proto2Tests(TextFormatBase):
|
||||
message = unittest_pb2.TestAllTypes()
|
||||
text = ('optional_nested_message { bb: 1 } '
|
||||
'optional_nested_message { bb: 2 }')
|
||||
self.assertRaisesWithLiteralMatch(
|
||||
self.assertRaisesRegexp(
|
||||
text_format.ParseError,
|
||||
('1:65 : Message type "protobuf_unittest.TestAllTypes.NestedMessage" '
|
||||
'should not have multiple "bb" fields.'),
|
||||
@ -614,14 +614,14 @@ class Proto2Tests(TextFormatBase):
|
||||
message = unittest_pb2.TestAllTypes()
|
||||
text = ('optional_int32: 42 '
|
||||
'optional_int32: 67')
|
||||
self.assertRaisesWithLiteralMatch(
|
||||
self.assertRaisesRegexp(
|
||||
text_format.ParseError,
|
||||
('1:36 : Message type "protobuf_unittest.TestAllTypes" should not '
|
||||
'have multiple "optional_int32" fields.'),
|
||||
text_format.Parse, text, message)
|
||||
|
||||
|
||||
class TokenizerTest(basetest.TestCase):
|
||||
class TokenizerTest(unittest.TestCase):
|
||||
|
||||
def testSimpleTokenCases(self):
|
||||
text = ('identifier1:"string1"\n \n\n'
|
||||
@ -766,4 +766,4 @@ class TokenizerTest(basetest.TestCase):
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
basetest.main()
|
||||
unittest.main()
|
||||
|
@ -35,7 +35,8 @@
|
||||
|
||||
__author__ = 'bohdank@google.com (Bohdan Koval)'
|
||||
|
||||
from google.apputils import basetest
|
||||
import unittest
|
||||
|
||||
from google.protobuf import unittest_mset_pb2
|
||||
from google.protobuf import unittest_pb2
|
||||
from google.protobuf import unittest_proto3_arena_pb2
|
||||
@ -46,7 +47,7 @@ from google.protobuf.internal import test_util
|
||||
from google.protobuf.internal import type_checkers
|
||||
|
||||
|
||||
class UnknownFieldsTest(basetest.TestCase):
|
||||
class UnknownFieldsTest(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.descriptor = unittest_pb2.TestAllTypes.DESCRIPTOR
|
||||
@ -104,7 +105,7 @@ class UnknownFieldsTest(basetest.TestCase):
|
||||
# fields when checking equality.
|
||||
#
|
||||
# TODO(haberman): fix this.
|
||||
@basetest.unittest.skipIf(
|
||||
@unittest.skipIf(
|
||||
api_implementation.Type() == 'cpp' and api_implementation.Version() == 2,
|
||||
'C++ implementation does not expose unknown fields to Python')
|
||||
def testEquals(self):
|
||||
@ -117,10 +118,10 @@ class UnknownFieldsTest(basetest.TestCase):
|
||||
self.assertNotEqual(self.empty_message, message)
|
||||
|
||||
|
||||
@basetest.unittest.skipIf(
|
||||
@unittest.skipIf(
|
||||
api_implementation.Type() == 'cpp' and api_implementation.Version() == 2,
|
||||
'C++ implementation does not expose unknown fields to Python')
|
||||
class UnknownFieldsAccessorsTest(basetest.TestCase):
|
||||
class UnknownFieldsAccessorsTest(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.descriptor = unittest_pb2.TestAllTypes.DESCRIPTOR
|
||||
@ -205,10 +206,10 @@ class UnknownFieldsAccessorsTest(basetest.TestCase):
|
||||
|
||||
|
||||
|
||||
@basetest.unittest.skipIf(
|
||||
@unittest.skipIf(
|
||||
api_implementation.Type() == 'cpp' and api_implementation.Version() == 2,
|
||||
'C++ implementation does not expose unknown fields to Python')
|
||||
class UnknownEnumValuesTest(basetest.TestCase):
|
||||
class UnknownEnumValuesTest(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.descriptor = missing_enum_values_pb2.TestEnumValues.DESCRIPTOR
|
||||
@ -261,4 +262,4 @@ class UnknownEnumValuesTest(basetest.TestCase):
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
basetest.main()
|
||||
unittest.main()
|
||||
|
@ -34,12 +34,13 @@
|
||||
|
||||
__author__ = 'robinson@google.com (Will Robinson)'
|
||||
|
||||
from google.apputils import basetest
|
||||
import unittest
|
||||
|
||||
from google.protobuf import message
|
||||
from google.protobuf.internal import wire_format
|
||||
|
||||
|
||||
class WireFormatTest(basetest.TestCase):
|
||||
class WireFormatTest(unittest.TestCase):
|
||||
|
||||
def testPackTag(self):
|
||||
field_number = 0xabc
|
||||
@ -250,4 +251,4 @@ class WireFormatTest(basetest.TestCase):
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
basetest.main()
|
||||
unittest.main()
|
||||
|
@ -165,7 +165,7 @@ if __name__ == '__main__':
|
||||
version = GetVersion(),
|
||||
packages = [ 'google' ],
|
||||
namespace_packages = [ 'google' ],
|
||||
google_test_dir = "google/protobuf/internal",
|
||||
test_suite = 'google.protobuf.internal',
|
||||
# Must list modules explicitly so that we don't install tests.
|
||||
py_modules = [
|
||||
'google.protobuf.internal.api_implementation',
|
||||
@ -194,11 +194,6 @@ if __name__ == '__main__':
|
||||
'google.protobuf.text_format'],
|
||||
cmdclass = { 'clean': clean, 'build_py': build_py },
|
||||
install_requires = ['setuptools'],
|
||||
# TODO: Restore dependency once a Python 3 compatible google-apputils
|
||||
# is released.
|
||||
setup_requires = (['google-apputils']
|
||||
if sys.version_info[0] < 3 else
|
||||
[]),
|
||||
ext_modules = ext_module_list,
|
||||
url = 'https://developers.google.com/protocol-buffers/',
|
||||
maintainer = maintainer_email,
|
||||
|
@ -32,11 +32,12 @@
|
||||
|
||||
"""Negative compilation unit tests for arena API."""
|
||||
|
||||
import unittest
|
||||
|
||||
from google3.testing.pybase import fake_target_util
|
||||
from google.apputils import basetest
|
||||
|
||||
|
||||
class ArenaNcTest(basetest.TestCase):
|
||||
class ArenaNcTest(unittest.TestCase):
|
||||
|
||||
def testCompilerErrors(self):
|
||||
"""Runs a list of tests to verify compiler error messages."""
|
||||
@ -56,4 +57,4 @@ class ArenaNcTest(basetest.TestCase):
|
||||
)
|
||||
|
||||
if __name__ == '__main__':
|
||||
basetest.main()
|
||||
unittest.main()
|
||||
|
Loading…
Reference in New Issue
Block a user