Index: tools/telemetry/third_party/gsutil/third_party/protorpc/protorpc/descriptor_test.py |
diff --git a/tools/telemetry/third_party/gsutil/third_party/protorpc/protorpc/descriptor_test.py b/tools/telemetry/third_party/gsutil/third_party/protorpc/protorpc/descriptor_test.py |
deleted file mode 100644 |
index 5047e8ec304e9d390771774c8fee7eef6afe181d..0000000000000000000000000000000000000000 |
--- a/tools/telemetry/third_party/gsutil/third_party/protorpc/protorpc/descriptor_test.py |
+++ /dev/null |
@@ -1,649 +0,0 @@ |
-#!/usr/bin/env python |
-# |
-# Copyright 2010 Google Inc. |
-# |
-# Licensed under the Apache License, Version 2.0 (the "License"); |
-# you may not use this file except in compliance with the License. |
-# You may obtain a copy of the License at |
-# |
-# http://www.apache.org/licenses/LICENSE-2.0 |
-# |
-# Unless required by applicable law or agreed to in writing, software |
-# distributed under the License is distributed on an "AS IS" BASIS, |
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
-# See the License for the specific language governing permissions and |
-# limitations under the License. |
-# |
- |
-"""Tests for protorpc.descriptor.""" |
- |
-__author__ = 'rafek@google.com (Rafe Kaplan)' |
- |
- |
-import types |
-import unittest |
- |
-from protorpc import descriptor |
-from protorpc import message_types |
-from protorpc import messages |
-from protorpc import registry |
-from protorpc import remote |
-from protorpc import test_util |
- |
- |
-RUSSIA = u'\u0420\u043e\u0441\u0441\u0438\u044f' |
- |
- |
-class ModuleInterfaceTest(test_util.ModuleInterfaceTest, |
- test_util.TestCase): |
- |
- MODULE = descriptor |
- |
- |
-class DescribeEnumValueTest(test_util.TestCase): |
- |
- def testDescribe(self): |
- class MyEnum(messages.Enum): |
- MY_NAME = 10 |
- |
- expected = descriptor.EnumValueDescriptor() |
- expected.name = 'MY_NAME' |
- expected.number = 10 |
- |
- described = descriptor.describe_enum_value(MyEnum.MY_NAME) |
- described.check_initialized() |
- self.assertEquals(expected, described) |
- |
- |
-class DescribeEnumTest(test_util.TestCase): |
- |
- def testEmptyEnum(self): |
- class EmptyEnum(messages.Enum): |
- pass |
- |
- expected = descriptor.EnumDescriptor() |
- expected.name = 'EmptyEnum' |
- |
- described = descriptor.describe_enum(EmptyEnum) |
- described.check_initialized() |
- self.assertEquals(expected, described) |
- |
- def testNestedEnum(self): |
- class MyScope(messages.Message): |
- class NestedEnum(messages.Enum): |
- pass |
- |
- expected = descriptor.EnumDescriptor() |
- expected.name = 'NestedEnum' |
- |
- described = descriptor.describe_enum(MyScope.NestedEnum) |
- described.check_initialized() |
- self.assertEquals(expected, described) |
- |
- def testEnumWithItems(self): |
- class EnumWithItems(messages.Enum): |
- A = 3 |
- B = 1 |
- C = 2 |
- |
- expected = descriptor.EnumDescriptor() |
- expected.name = 'EnumWithItems' |
- |
- a = descriptor.EnumValueDescriptor() |
- a.name = 'A' |
- a.number = 3 |
- |
- b = descriptor.EnumValueDescriptor() |
- b.name = 'B' |
- b.number = 1 |
- |
- c = descriptor.EnumValueDescriptor() |
- c.name = 'C' |
- c.number = 2 |
- |
- expected.values = [b, c, a] |
- |
- described = descriptor.describe_enum(EnumWithItems) |
- described.check_initialized() |
- self.assertEquals(expected, described) |
- |
- |
-class DescribeFieldTest(test_util.TestCase): |
- |
- def testLabel(self): |
- for repeated, required, expected_label in ( |
- (True, False, descriptor.FieldDescriptor.Label.REPEATED), |
- (False, True, descriptor.FieldDescriptor.Label.REQUIRED), |
- (False, False, descriptor.FieldDescriptor.Label.OPTIONAL)): |
- field = messages.IntegerField(10, required=required, repeated=repeated) |
- field.name = 'a_field' |
- |
- expected = descriptor.FieldDescriptor() |
- expected.name = 'a_field' |
- expected.number = 10 |
- expected.label = expected_label |
- expected.variant = descriptor.FieldDescriptor.Variant.INT64 |
- |
- described = descriptor.describe_field(field) |
- described.check_initialized() |
- self.assertEquals(expected, described) |
- |
- def testDefault(self): |
- for field_class, default, expected_default in ( |
- (messages.IntegerField, 200, '200'), |
- (messages.FloatField, 1.5, '1.5'), |
- (messages.FloatField, 1e6, '1000000.0'), |
- (messages.BooleanField, True, 'true'), |
- (messages.BooleanField, False, 'false'), |
- (messages.BytesField, 'ab\xF1', 'ab\\xf1'), |
- (messages.StringField, RUSSIA, RUSSIA), |
- ): |
- field = field_class(10, default=default) |
- field.name = u'a_field' |
- |
- expected = descriptor.FieldDescriptor() |
- expected.name = u'a_field' |
- expected.number = 10 |
- expected.label = descriptor.FieldDescriptor.Label.OPTIONAL |
- expected.variant = field_class.DEFAULT_VARIANT |
- expected.default_value = expected_default |
- |
- described = descriptor.describe_field(field) |
- described.check_initialized() |
- self.assertEquals(expected, described) |
- |
- def testDefault_EnumField(self): |
- class MyEnum(messages.Enum): |
- |
- VAL = 1 |
- |
- module_name = test_util.get_module_name(MyEnum) |
- field = messages.EnumField(MyEnum, 10, default=MyEnum.VAL) |
- field.name = 'a_field' |
- |
- expected = descriptor.FieldDescriptor() |
- expected.name = 'a_field' |
- expected.number = 10 |
- expected.label = descriptor.FieldDescriptor.Label.OPTIONAL |
- expected.variant = messages.EnumField.DEFAULT_VARIANT |
- expected.type_name = '%s.MyEnum' % module_name |
- expected.default_value = '1' |
- |
- described = descriptor.describe_field(field) |
- self.assertEquals(expected, described) |
- |
- def testMessageField(self): |
- field = messages.MessageField(descriptor.FieldDescriptor, 10) |
- field.name = 'a_field' |
- |
- expected = descriptor.FieldDescriptor() |
- expected.name = 'a_field' |
- expected.number = 10 |
- expected.label = descriptor.FieldDescriptor.Label.OPTIONAL |
- expected.variant = messages.MessageField.DEFAULT_VARIANT |
- expected.type_name = ('protorpc.descriptor.FieldDescriptor') |
- |
- described = descriptor.describe_field(field) |
- described.check_initialized() |
- self.assertEquals(expected, described) |
- |
- def testDateTimeField(self): |
- field = message_types.DateTimeField(20) |
- field.name = 'a_timestamp' |
- |
- expected = descriptor.FieldDescriptor() |
- expected.name = 'a_timestamp' |
- expected.number = 20 |
- expected.label = descriptor.FieldDescriptor.Label.OPTIONAL |
- expected.variant = messages.MessageField.DEFAULT_VARIANT |
- expected.type_name = ('protorpc.message_types.DateTimeMessage') |
- |
- described = descriptor.describe_field(field) |
- described.check_initialized() |
- self.assertEquals(expected, described) |
- |
- |
-class DescribeMessageTest(test_util.TestCase): |
- |
- def testEmptyDefinition(self): |
- class MyMessage(messages.Message): |
- pass |
- |
- expected = descriptor.MessageDescriptor() |
- expected.name = 'MyMessage' |
- |
- described = descriptor.describe_message(MyMessage) |
- described.check_initialized() |
- self.assertEquals(expected, described) |
- |
- def testDefinitionWithFields(self): |
- class MessageWithFields(messages.Message): |
- field1 = messages.IntegerField(10) |
- field2 = messages.StringField(30) |
- field3 = messages.IntegerField(20) |
- |
- expected = descriptor.MessageDescriptor() |
- expected.name = 'MessageWithFields' |
- |
- expected.fields = [ |
- descriptor.describe_field(MessageWithFields.field_by_name('field1')), |
- descriptor.describe_field(MessageWithFields.field_by_name('field3')), |
- descriptor.describe_field(MessageWithFields.field_by_name('field2')), |
- ] |
- |
- described = descriptor.describe_message(MessageWithFields) |
- described.check_initialized() |
- self.assertEquals(expected, described) |
- |
- def testNestedEnum(self): |
- class MessageWithEnum(messages.Message): |
- class Mood(messages.Enum): |
- GOOD = 1 |
- BAD = 2 |
- UGLY = 3 |
- |
- class Music(messages.Enum): |
- CLASSIC = 1 |
- JAZZ = 2 |
- BLUES = 3 |
- |
- expected = descriptor.MessageDescriptor() |
- expected.name = 'MessageWithEnum' |
- |
- expected.enum_types = [descriptor.describe_enum(MessageWithEnum.Mood), |
- descriptor.describe_enum(MessageWithEnum.Music)] |
- |
- described = descriptor.describe_message(MessageWithEnum) |
- described.check_initialized() |
- self.assertEquals(expected, described) |
- |
- def testNestedMessage(self): |
- class MessageWithMessage(messages.Message): |
- class Nesty(messages.Message): |
- pass |
- |
- expected = descriptor.MessageDescriptor() |
- expected.name = 'MessageWithMessage' |
- |
- expected.message_types = [ |
- descriptor.describe_message(MessageWithMessage.Nesty)] |
- |
- described = descriptor.describe_message(MessageWithMessage) |
- described.check_initialized() |
- self.assertEquals(expected, described) |
- |
- |
-class DescribeMethodTest(test_util.TestCase): |
- """Test describing remote methods.""" |
- |
- def testDescribe(self): |
- class Request(messages.Message): |
- pass |
- |
- class Response(messages.Message): |
- pass |
- |
- @remote.method(Request, Response) |
- def remote_method(request): |
- pass |
- |
- module_name = test_util.get_module_name(DescribeMethodTest) |
- expected = descriptor.MethodDescriptor() |
- expected.name = 'remote_method' |
- expected.request_type = '%s.Request' % module_name |
- expected.response_type = '%s.Response' % module_name |
- |
- described = descriptor.describe_method(remote_method) |
- described.check_initialized() |
- self.assertEquals(expected, described) |
- |
- |
-class DescribeServiceTest(test_util.TestCase): |
- """Test describing service classes.""" |
- |
- def testDescribe(self): |
- class Request1(messages.Message): |
- pass |
- |
- class Response1(messages.Message): |
- pass |
- |
- class Request2(messages.Message): |
- pass |
- |
- class Response2(messages.Message): |
- pass |
- |
- class MyService(remote.Service): |
- |
- @remote.method(Request1, Response1) |
- def method1(self, request): |
- pass |
- |
- @remote.method(Request2, Response2) |
- def method2(self, request): |
- pass |
- |
- expected = descriptor.ServiceDescriptor() |
- expected.name = 'MyService' |
- expected.methods = [] |
- |
- expected.methods.append(descriptor.describe_method(MyService.method1)) |
- expected.methods.append(descriptor.describe_method(MyService.method2)) |
- |
- described = descriptor.describe_service(MyService) |
- described.check_initialized() |
- self.assertEquals(expected, described) |
- |
- |
-class DescribeFileTest(test_util.TestCase): |
- """Test describing modules.""" |
- |
- def LoadModule(self, module_name, source): |
- result = {'__name__': module_name, |
- 'messages': messages, |
- 'remote': remote, |
- } |
- exec(source, result) |
- |
- module = types.ModuleType(module_name) |
- for name, value in result.items(): |
- setattr(module, name, value) |
- |
- return module |
- |
- def testEmptyModule(self): |
- """Test describing an empty file.""" |
- module = types.ModuleType('my.package.name') |
- |
- expected = descriptor.FileDescriptor() |
- expected.package = 'my.package.name' |
- |
- described = descriptor.describe_file(module) |
- described.check_initialized() |
- self.assertEquals(expected, described) |
- |
- def testNoPackageName(self): |
- """Test describing a module with no module name.""" |
- module = types.ModuleType('') |
- |
- expected = descriptor.FileDescriptor() |
- |
- described = descriptor.describe_file(module) |
- described.check_initialized() |
- self.assertEquals(expected, described) |
- |
- def testPackageName(self): |
- """Test using the 'package' module attribute.""" |
- module = types.ModuleType('my.module.name') |
- module.package = 'my.package.name' |
- |
- expected = descriptor.FileDescriptor() |
- expected.package = 'my.package.name' |
- |
- described = descriptor.describe_file(module) |
- described.check_initialized() |
- self.assertEquals(expected, described) |
- |
- def testMain(self): |
- """Test using the 'package' module attribute.""" |
- module = types.ModuleType('__main__') |
- module.__file__ = '/blim/blam/bloom/my_package.py' |
- |
- expected = descriptor.FileDescriptor() |
- expected.package = 'my_package' |
- |
- described = descriptor.describe_file(module) |
- described.check_initialized() |
- self.assertEquals(expected, described) |
- |
- def testMessages(self): |
- """Test that messages are described.""" |
- module = self.LoadModule('my.package', |
- 'class Message1(messages.Message): pass\n' |
- 'class Message2(messages.Message): pass\n') |
- |
- message1 = descriptor.MessageDescriptor() |
- message1.name = 'Message1' |
- |
- message2 = descriptor.MessageDescriptor() |
- message2.name = 'Message2' |
- |
- expected = descriptor.FileDescriptor() |
- expected.package = 'my.package' |
- expected.message_types = [message1, message2] |
- |
- described = descriptor.describe_file(module) |
- described.check_initialized() |
- self.assertEquals(expected, described) |
- |
- def testEnums(self): |
- """Test that enums are described.""" |
- module = self.LoadModule('my.package', |
- 'class Enum1(messages.Enum): pass\n' |
- 'class Enum2(messages.Enum): pass\n') |
- |
- enum1 = descriptor.EnumDescriptor() |
- enum1.name = 'Enum1' |
- |
- enum2 = descriptor.EnumDescriptor() |
- enum2.name = 'Enum2' |
- |
- expected = descriptor.FileDescriptor() |
- expected.package = 'my.package' |
- expected.enum_types = [enum1, enum2] |
- |
- described = descriptor.describe_file(module) |
- described.check_initialized() |
- self.assertEquals(expected, described) |
- |
- def testServices(self): |
- """Test that services are described.""" |
- module = self.LoadModule('my.package', |
- 'class Service1(remote.Service): pass\n' |
- 'class Service2(remote.Service): pass\n') |
- |
- service1 = descriptor.ServiceDescriptor() |
- service1.name = 'Service1' |
- |
- service2 = descriptor.ServiceDescriptor() |
- service2.name = 'Service2' |
- |
- expected = descriptor.FileDescriptor() |
- expected.package = 'my.package' |
- expected.service_types = [service1, service2] |
- |
- described = descriptor.describe_file(module) |
- described.check_initialized() |
- self.assertEquals(expected, described) |
- |
- |
-class DescribeFileSetTest(test_util.TestCase): |
- """Test describing multiple modules.""" |
- |
- def testNoModules(self): |
- """Test what happens when no modules provided.""" |
- described = descriptor.describe_file_set([]) |
- described.check_initialized() |
- # The described FileSet.files will be None. |
- self.assertEquals(descriptor.FileSet(), described) |
- |
- def testWithModules(self): |
- """Test what happens when no modules provided.""" |
- modules = [types.ModuleType('package1'), types.ModuleType('package1')] |
- |
- file1 = descriptor.FileDescriptor() |
- file1.package = 'package1' |
- file2 = descriptor.FileDescriptor() |
- file2.package = 'package2' |
- |
- expected = descriptor.FileSet() |
- expected.files = [file1, file1] |
- |
- described = descriptor.describe_file_set(modules) |
- described.check_initialized() |
- self.assertEquals(expected, described) |
- |
- |
-class DescribeTest(test_util.TestCase): |
- |
- def testModule(self): |
- self.assertEquals(descriptor.describe_file(test_util), |
- descriptor.describe(test_util)) |
- |
- def testMethod(self): |
- class Param(messages.Message): |
- pass |
- |
- class Service(remote.Service): |
- |
- @remote.method(Param, Param) |
- def fn(self): |
- return Param() |
- |
- self.assertEquals(descriptor.describe_method(Service.fn), |
- descriptor.describe(Service.fn)) |
- |
- def testField(self): |
- self.assertEquals( |
- descriptor.describe_field(test_util.NestedMessage.a_value), |
- descriptor.describe(test_util.NestedMessage.a_value)) |
- |
- def testEnumValue(self): |
- self.assertEquals( |
- descriptor.describe_enum_value( |
- test_util.OptionalMessage.SimpleEnum.VAL1), |
- descriptor.describe(test_util.OptionalMessage.SimpleEnum.VAL1)) |
- |
- def testMessage(self): |
- self.assertEquals(descriptor.describe_message(test_util.NestedMessage), |
- descriptor.describe(test_util.NestedMessage)) |
- |
- def testEnum(self): |
- self.assertEquals( |
- descriptor.describe_enum(test_util.OptionalMessage.SimpleEnum), |
- descriptor.describe(test_util.OptionalMessage.SimpleEnum)) |
- |
- def testService(self): |
- class Service(remote.Service): |
- pass |
- |
- self.assertEquals(descriptor.describe_service(Service), |
- descriptor.describe(Service)) |
- |
- def testService(self): |
- class Service(remote.Service): |
- pass |
- |
- self.assertEquals(descriptor.describe_service(Service), |
- descriptor.describe(Service)) |
- |
- def testUndescribable(self): |
- class NonService(object): |
- |
- def fn(self): |
- pass |
- |
- for value in (NonService, |
- NonService.fn, |
- 1, |
- 'string', |
- 1.2, |
- None): |
- self.assertEquals(None, descriptor.describe(value)) |
- |
- |
-class ModuleFinderTest(test_util.TestCase): |
- |
- def testFindModule(self): |
- self.assertEquals(descriptor.describe_file(registry), |
- descriptor.import_descriptor_loader('protorpc.registry')) |
- |
- def testFindMessage(self): |
- self.assertEquals( |
- descriptor.describe_message(descriptor.FileSet), |
- descriptor.import_descriptor_loader('protorpc.descriptor.FileSet')) |
- |
- def testFindField(self): |
- self.assertEquals( |
- descriptor.describe_field(descriptor.FileSet.files), |
- descriptor.import_descriptor_loader('protorpc.descriptor.FileSet.files')) |
- |
- def testFindEnumValue(self): |
- self.assertEquals( |
- descriptor.describe_enum_value(test_util.OptionalMessage.SimpleEnum.VAL1), |
- descriptor.import_descriptor_loader( |
- 'protorpc.test_util.OptionalMessage.SimpleEnum.VAL1')) |
- |
- def testFindMethod(self): |
- self.assertEquals( |
- descriptor.describe_method(registry.RegistryService.services), |
- descriptor.import_descriptor_loader( |
- 'protorpc.registry.RegistryService.services')) |
- |
- def testFindService(self): |
- self.assertEquals( |
- descriptor.describe_service(registry.RegistryService), |
- descriptor.import_descriptor_loader('protorpc.registry.RegistryService')) |
- |
- def testFindWithAbsoluteName(self): |
- self.assertEquals( |
- descriptor.describe_service(registry.RegistryService), |
- descriptor.import_descriptor_loader('.protorpc.registry.RegistryService')) |
- |
- def testFindWrongThings(self): |
- for name in ('a', 'protorpc.registry.RegistryService.__init__', '', ): |
- self.assertRaisesWithRegexpMatch( |
- messages.DefinitionNotFoundError, |
- 'Could not find definition for %s' % name, |
- descriptor.import_descriptor_loader, name) |
- |
- |
-class DescriptorLibraryTest(test_util.TestCase): |
- |
- def setUp(self): |
- self.packageless = descriptor.MessageDescriptor() |
- self.packageless.name = 'Packageless' |
- self.library = descriptor.DescriptorLibrary( |
- descriptors={ |
- 'not.real.Packageless': self.packageless, |
- 'Packageless': self.packageless, |
- }) |
- |
- def testLookupPackage(self): |
- self.assertEquals('csv', self.library.lookup_package('csv')) |
- self.assertEquals('protorpc', self.library.lookup_package('protorpc')) |
- self.assertEquals('protorpc.registry', |
- self.library.lookup_package('protorpc.registry')) |
- self.assertEquals('protorpc.registry', |
- self.library.lookup_package('.protorpc.registry')) |
- self.assertEquals( |
- 'protorpc.registry', |
- self.library.lookup_package('protorpc.registry.RegistryService')) |
- self.assertEquals( |
- 'protorpc.registry', |
- self.library.lookup_package( |
- 'protorpc.registry.RegistryService.services')) |
- |
- def testLookupNonPackages(self): |
- for name in ('', 'a', 'protorpc.descriptor.DescriptorLibrary'): |
- self.assertRaisesWithRegexpMatch( |
- messages.DefinitionNotFoundError, |
- 'Could not find definition for %s' % name, |
- self.library.lookup_package, name) |
- |
- def testNoPackage(self): |
- self.assertRaisesWithRegexpMatch( |
- messages.DefinitionNotFoundError, |
- 'Could not find definition for not.real', |
- self.library.lookup_package, 'not.real.Packageless') |
- |
- self.assertEquals(None, self.library.lookup_package('Packageless')) |
- |
- |
-def main(): |
- unittest.main() |
- |
- |
-if __name__ == '__main__': |
- main() |