| Index: tools/telemetry/third_party/gsutilz/third_party/protorpc/protorpc/definition_test.py
|
| diff --git a/tools/telemetry/third_party/gsutilz/third_party/protorpc/protorpc/definition_test.py b/tools/telemetry/third_party/gsutilz/third_party/protorpc/protorpc/definition_test.py
|
| deleted file mode 100755
|
| index 992220e111503ecdd27824fcf982b84dcde2e071..0000000000000000000000000000000000000000
|
| --- a/tools/telemetry/third_party/gsutilz/third_party/protorpc/protorpc/definition_test.py
|
| +++ /dev/null
|
| @@ -1,657 +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.stub."""
|
| -
|
| -__author__ = 'rafek@google.com (Rafe Kaplan)'
|
| -
|
| -
|
| -import StringIO
|
| -import sys
|
| -import types
|
| -import unittest
|
| -
|
| -from protorpc import definition
|
| -from protorpc import descriptor
|
| -from protorpc import message_types
|
| -from protorpc import messages
|
| -from protorpc import protobuf
|
| -from protorpc import remote
|
| -from protorpc import test_util
|
| -
|
| -import mox
|
| -
|
| -
|
| -class ModuleInterfaceTest(test_util.ModuleInterfaceTest,
|
| - test_util.TestCase):
|
| -
|
| - MODULE = definition
|
| -
|
| -
|
| -class DefineEnumTest(test_util.TestCase):
|
| - """Test for define_enum."""
|
| -
|
| - def testDefineEnum_Empty(self):
|
| - """Test defining an empty enum."""
|
| - enum_descriptor = descriptor.EnumDescriptor()
|
| - enum_descriptor.name = 'Empty'
|
| -
|
| - enum_class = definition.define_enum(enum_descriptor, 'whatever')
|
| -
|
| - self.assertEquals('Empty', enum_class.__name__)
|
| - self.assertEquals('whatever', enum_class.__module__)
|
| -
|
| - self.assertEquals(enum_descriptor, descriptor.describe_enum(enum_class))
|
| -
|
| - def testDefineEnum(self):
|
| - """Test defining an enum."""
|
| - red = descriptor.EnumValueDescriptor()
|
| - green = descriptor.EnumValueDescriptor()
|
| - blue = descriptor.EnumValueDescriptor()
|
| -
|
| - red.name = 'RED'
|
| - red.number = 1
|
| - green.name = 'GREEN'
|
| - green.number = 2
|
| - blue.name = 'BLUE'
|
| - blue.number = 3
|
| -
|
| - enum_descriptor = descriptor.EnumDescriptor()
|
| - enum_descriptor.name = 'Colors'
|
| - enum_descriptor.values = [red, green, blue]
|
| -
|
| - enum_class = definition.define_enum(enum_descriptor, 'whatever')
|
| -
|
| - self.assertEquals('Colors', enum_class.__name__)
|
| - self.assertEquals('whatever', enum_class.__module__)
|
| -
|
| - self.assertEquals(enum_descriptor, descriptor.describe_enum(enum_class))
|
| -
|
| -
|
| -class DefineFieldTest(test_util.TestCase):
|
| - """Test for define_field."""
|
| -
|
| - def testDefineField_Optional(self):
|
| - """Test defining an optional field instance from a method descriptor."""
|
| - field_descriptor = descriptor.FieldDescriptor()
|
| -
|
| - field_descriptor.name = 'a_field'
|
| - field_descriptor.number = 1
|
| - field_descriptor.variant = descriptor.FieldDescriptor.Variant.INT32
|
| - field_descriptor.label = descriptor.FieldDescriptor.Label.OPTIONAL
|
| -
|
| - field = definition.define_field(field_descriptor)
|
| -
|
| - # Name will not be set from the original descriptor.
|
| - self.assertFalse(hasattr(field, 'name'))
|
| -
|
| - self.assertTrue(isinstance(field, messages.IntegerField))
|
| - self.assertEquals(1, field.number)
|
| - self.assertEquals(descriptor.FieldDescriptor.Variant.INT32, field.variant)
|
| - self.assertFalse(field.required)
|
| - self.assertFalse(field.repeated)
|
| -
|
| - def testDefineField_Required(self):
|
| - """Test defining a required field instance from a method descriptor."""
|
| - field_descriptor = descriptor.FieldDescriptor()
|
| -
|
| - field_descriptor.name = 'a_field'
|
| - field_descriptor.number = 1
|
| - field_descriptor.variant = descriptor.FieldDescriptor.Variant.STRING
|
| - field_descriptor.label = descriptor.FieldDescriptor.Label.REQUIRED
|
| -
|
| - field = definition.define_field(field_descriptor)
|
| -
|
| - # Name will not be set from the original descriptor.
|
| - self.assertFalse(hasattr(field, 'name'))
|
| -
|
| - self.assertTrue(isinstance(field, messages.StringField))
|
| - self.assertEquals(1, field.number)
|
| - self.assertEquals(descriptor.FieldDescriptor.Variant.STRING, field.variant)
|
| - self.assertTrue(field.required)
|
| - self.assertFalse(field.repeated)
|
| -
|
| - def testDefineField_Repeated(self):
|
| - """Test defining a repeated field instance from a method descriptor."""
|
| - field_descriptor = descriptor.FieldDescriptor()
|
| -
|
| - field_descriptor.name = 'a_field'
|
| - field_descriptor.number = 1
|
| - field_descriptor.variant = descriptor.FieldDescriptor.Variant.DOUBLE
|
| - field_descriptor.label = descriptor.FieldDescriptor.Label.REPEATED
|
| -
|
| - field = definition.define_field(field_descriptor)
|
| -
|
| - # Name will not be set from the original descriptor.
|
| - self.assertFalse(hasattr(field, 'name'))
|
| -
|
| - self.assertTrue(isinstance(field, messages.FloatField))
|
| - self.assertEquals(1, field.number)
|
| - self.assertEquals(descriptor.FieldDescriptor.Variant.DOUBLE, field.variant)
|
| - self.assertFalse(field.required)
|
| - self.assertTrue(field.repeated)
|
| -
|
| - def testDefineField_Message(self):
|
| - """Test defining a message field."""
|
| - field_descriptor = descriptor.FieldDescriptor()
|
| -
|
| - field_descriptor.name = 'a_field'
|
| - field_descriptor.number = 1
|
| - field_descriptor.variant = descriptor.FieldDescriptor.Variant.MESSAGE
|
| - field_descriptor.type_name = 'something.yet.to.be.Defined'
|
| - field_descriptor.label = descriptor.FieldDescriptor.Label.REPEATED
|
| -
|
| - field = definition.define_field(field_descriptor)
|
| -
|
| - # Name will not be set from the original descriptor.
|
| - self.assertFalse(hasattr(field, 'name'))
|
| -
|
| - self.assertTrue(isinstance(field, messages.MessageField))
|
| - self.assertEquals(1, field.number)
|
| - self.assertEquals(descriptor.FieldDescriptor.Variant.MESSAGE, field.variant)
|
| - self.assertFalse(field.required)
|
| - self.assertTrue(field.repeated)
|
| - self.assertRaisesWithRegexpMatch(messages.DefinitionNotFoundError,
|
| - 'Could not find definition for '
|
| - 'something.yet.to.be.Defined',
|
| - getattr, field, 'type')
|
| -
|
| - def testDefineField_DateTime(self):
|
| - """Test defining a date time field."""
|
| - field_descriptor = descriptor.FieldDescriptor()
|
| -
|
| - field_descriptor.name = 'a_timestamp'
|
| - field_descriptor.number = 1
|
| - field_descriptor.variant = descriptor.FieldDescriptor.Variant.MESSAGE
|
| - field_descriptor.type_name = 'protorpc.message_types.DateTimeMessage'
|
| - field_descriptor.label = descriptor.FieldDescriptor.Label.REPEATED
|
| -
|
| - field = definition.define_field(field_descriptor)
|
| -
|
| - # Name will not be set from the original descriptor.
|
| - self.assertFalse(hasattr(field, 'name'))
|
| -
|
| - self.assertTrue(isinstance(field, message_types.DateTimeField))
|
| - self.assertEquals(1, field.number)
|
| - self.assertEquals(descriptor.FieldDescriptor.Variant.MESSAGE, field.variant)
|
| - self.assertFalse(field.required)
|
| - self.assertTrue(field.repeated)
|
| -
|
| - def testDefineField_Enum(self):
|
| - """Test defining an enum field."""
|
| - field_descriptor = descriptor.FieldDescriptor()
|
| -
|
| - field_descriptor.name = 'a_field'
|
| - field_descriptor.number = 1
|
| - field_descriptor.variant = descriptor.FieldDescriptor.Variant.ENUM
|
| - field_descriptor.type_name = 'something.yet.to.be.Defined'
|
| - field_descriptor.label = descriptor.FieldDescriptor.Label.REPEATED
|
| -
|
| - field = definition.define_field(field_descriptor)
|
| -
|
| - # Name will not be set from the original descriptor.
|
| - self.assertFalse(hasattr(field, 'name'))
|
| -
|
| - self.assertTrue(isinstance(field, messages.EnumField))
|
| - self.assertEquals(1, field.number)
|
| - self.assertEquals(descriptor.FieldDescriptor.Variant.ENUM, field.variant)
|
| - self.assertFalse(field.required)
|
| - self.assertTrue(field.repeated)
|
| - self.assertRaisesWithRegexpMatch(messages.DefinitionNotFoundError,
|
| - 'Could not find definition for '
|
| - 'something.yet.to.be.Defined',
|
| - getattr, field, 'type')
|
| -
|
| - def testDefineField_Default_Bool(self):
|
| - """Test defining a default value for a bool."""
|
| - field_descriptor = descriptor.FieldDescriptor()
|
| -
|
| - field_descriptor.name = 'a_field'
|
| - field_descriptor.number = 1
|
| - field_descriptor.variant = descriptor.FieldDescriptor.Variant.BOOL
|
| - field_descriptor.default_value = u'true'
|
| -
|
| - field = definition.define_field(field_descriptor)
|
| -
|
| - # Name will not be set from the original descriptor.
|
| - self.assertFalse(hasattr(field, 'name'))
|
| -
|
| - self.assertTrue(isinstance(field, messages.BooleanField))
|
| - self.assertEquals(1, field.number)
|
| - self.assertEquals(descriptor.FieldDescriptor.Variant.BOOL, field.variant)
|
| - self.assertFalse(field.required)
|
| - self.assertFalse(field.repeated)
|
| - self.assertEqual(field.default, True)
|
| -
|
| - field_descriptor.default_value = u'false'
|
| -
|
| - field = definition.define_field(field_descriptor)
|
| -
|
| - self.assertEqual(field.default, False)
|
| -
|
| - def testDefineField_Default_Float(self):
|
| - """Test defining a default value for a float."""
|
| - field_descriptor = descriptor.FieldDescriptor()
|
| -
|
| - field_descriptor.name = 'a_field'
|
| - field_descriptor.number = 1
|
| - field_descriptor.variant = descriptor.FieldDescriptor.Variant.FLOAT
|
| - field_descriptor.default_value = u'34.567'
|
| -
|
| - field = definition.define_field(field_descriptor)
|
| -
|
| - # Name will not be set from the original descriptor.
|
| - self.assertFalse(hasattr(field, 'name'))
|
| -
|
| - self.assertTrue(isinstance(field, messages.FloatField))
|
| - self.assertEquals(1, field.number)
|
| - self.assertEquals(descriptor.FieldDescriptor.Variant.FLOAT, field.variant)
|
| - self.assertFalse(field.required)
|
| - self.assertFalse(field.repeated)
|
| - self.assertEqual(field.default, 34.567)
|
| -
|
| - def testDefineField_Default_Int(self):
|
| - """Test defining a default value for an int."""
|
| - field_descriptor = descriptor.FieldDescriptor()
|
| -
|
| - field_descriptor.name = 'a_field'
|
| - field_descriptor.number = 1
|
| - field_descriptor.variant = descriptor.FieldDescriptor.Variant.INT64
|
| - field_descriptor.default_value = u'34'
|
| -
|
| - field = definition.define_field(field_descriptor)
|
| -
|
| - # Name will not be set from the original descriptor.
|
| - self.assertFalse(hasattr(field, 'name'))
|
| -
|
| - self.assertTrue(isinstance(field, messages.IntegerField))
|
| - self.assertEquals(1, field.number)
|
| - self.assertEquals(descriptor.FieldDescriptor.Variant.INT64, field.variant)
|
| - self.assertFalse(field.required)
|
| - self.assertFalse(field.repeated)
|
| - self.assertEqual(field.default, 34)
|
| -
|
| - def testDefineField_Default_Str(self):
|
| - """Test defining a default value for a str."""
|
| - field_descriptor = descriptor.FieldDescriptor()
|
| -
|
| - field_descriptor.name = 'a_field'
|
| - field_descriptor.number = 1
|
| - field_descriptor.variant = descriptor.FieldDescriptor.Variant.STRING
|
| - field_descriptor.default_value = u'Test'
|
| -
|
| - field = definition.define_field(field_descriptor)
|
| -
|
| - # Name will not be set from the original descriptor.
|
| - self.assertFalse(hasattr(field, 'name'))
|
| -
|
| - self.assertTrue(isinstance(field, messages.StringField))
|
| - self.assertEquals(1, field.number)
|
| - self.assertEquals(descriptor.FieldDescriptor.Variant.STRING, field.variant)
|
| - self.assertFalse(field.required)
|
| - self.assertFalse(field.repeated)
|
| - self.assertEqual(field.default, u'Test')
|
| -
|
| - def testDefineField_Default_Invalid(self):
|
| - """Test defining a default value that is not valid."""
|
| - field_descriptor = descriptor.FieldDescriptor()
|
| -
|
| - field_descriptor.name = 'a_field'
|
| - field_descriptor.number = 1
|
| - field_descriptor.variant = descriptor.FieldDescriptor.Variant.INT64
|
| - field_descriptor.default_value = u'Test'
|
| -
|
| - # Verify that the string is passed to the Constructor.
|
| - mock = mox.Mox()
|
| - mock.StubOutWithMock(messages.IntegerField, '__init__')
|
| - messages.IntegerField.__init__(
|
| - default=u'Test',
|
| - number=1,
|
| - variant=messages.Variant.INT64
|
| - ).AndRaise(messages.InvalidDefaultError)
|
| -
|
| - mock.ReplayAll()
|
| - self.assertRaises(messages.InvalidDefaultError,
|
| - definition.define_field, field_descriptor)
|
| - mock.VerifyAll()
|
| -
|
| - mock.ResetAll()
|
| - mock.UnsetStubs()
|
| -
|
| -
|
| -class DefineMessageTest(test_util.TestCase):
|
| - """Test for define_message."""
|
| -
|
| - def testDefineMessageEmpty(self):
|
| - """Test definition a message with no fields or enums."""
|
| -
|
| - class AMessage(messages.Message):
|
| - pass
|
| -
|
| - message_descriptor = descriptor.describe_message(AMessage)
|
| -
|
| - message_class = definition.define_message(message_descriptor, '__main__')
|
| -
|
| - self.assertEquals('AMessage', message_class.__name__)
|
| - self.assertEquals('__main__', message_class.__module__)
|
| -
|
| - self.assertEquals(message_descriptor,
|
| - descriptor.describe_message(message_class))
|
| -
|
| - def testDefineMessageEnumOnly(self):
|
| - """Test definition a message with only enums."""
|
| -
|
| - class AMessage(messages.Message):
|
| - class NestedEnum(messages.Enum):
|
| - pass
|
| -
|
| - message_descriptor = descriptor.describe_message(AMessage)
|
| -
|
| - message_class = definition.define_message(message_descriptor, '__main__')
|
| -
|
| - self.assertEquals('AMessage', message_class.__name__)
|
| - self.assertEquals('__main__', message_class.__module__)
|
| -
|
| - self.assertEquals(message_descriptor,
|
| - descriptor.describe_message(message_class))
|
| -
|
| - def testDefineMessageFieldsOnly(self):
|
| - """Test definition a message with only fields."""
|
| -
|
| - class AMessage(messages.Message):
|
| -
|
| - field1 = messages.IntegerField(1)
|
| - field2 = messages.StringField(2)
|
| -
|
| - message_descriptor = descriptor.describe_message(AMessage)
|
| -
|
| - message_class = definition.define_message(message_descriptor, '__main__')
|
| -
|
| - self.assertEquals('AMessage', message_class.__name__)
|
| - self.assertEquals('__main__', message_class.__module__)
|
| -
|
| - self.assertEquals(message_descriptor,
|
| - descriptor.describe_message(message_class))
|
| -
|
| - def testDefineMessage(self):
|
| - """Test defining Message class from descriptor."""
|
| -
|
| - class AMessage(messages.Message):
|
| - class NestedEnum(messages.Enum):
|
| - pass
|
| -
|
| - field1 = messages.IntegerField(1)
|
| - field2 = messages.StringField(2)
|
| -
|
| - message_descriptor = descriptor.describe_message(AMessage)
|
| -
|
| - message_class = definition.define_message(message_descriptor, '__main__')
|
| -
|
| - self.assertEquals('AMessage', message_class.__name__)
|
| - self.assertEquals('__main__', message_class.__module__)
|
| -
|
| - self.assertEquals(message_descriptor,
|
| - descriptor.describe_message(message_class))
|
| -
|
| -
|
| -class DefineServiceTest(test_util.TestCase):
|
| - """Test service proxy definition."""
|
| -
|
| - def setUp(self):
|
| - """Set up mock and request classes."""
|
| - self.module = types.ModuleType('stocks')
|
| -
|
| - class GetQuoteRequest(messages.Message):
|
| - __module__ = 'stocks'
|
| -
|
| - symbols = messages.StringField(1, repeated=True)
|
| -
|
| - class GetQuoteResponse(messages.Message):
|
| - __module__ = 'stocks'
|
| -
|
| - prices = messages.IntegerField(1, repeated=True)
|
| -
|
| - self.module.GetQuoteRequest = GetQuoteRequest
|
| - self.module.GetQuoteResponse = GetQuoteResponse
|
| -
|
| - def testDefineService(self):
|
| - """Test service definition from descriptor."""
|
| - method_descriptor = descriptor.MethodDescriptor()
|
| - method_descriptor.name = 'get_quote'
|
| - method_descriptor.request_type = 'GetQuoteRequest'
|
| - method_descriptor.response_type = 'GetQuoteResponse'
|
| -
|
| - service_descriptor = descriptor.ServiceDescriptor()
|
| - service_descriptor.name = 'Stocks'
|
| - service_descriptor.methods = [method_descriptor]
|
| -
|
| - StockService = definition.define_service(service_descriptor, self.module)
|
| -
|
| - self.assertTrue(issubclass(StockService, remote.Service))
|
| - self.assertTrue(issubclass(StockService.Stub, remote.StubBase))
|
| -
|
| - request = self.module.GetQuoteRequest()
|
| - service = StockService()
|
| - self.assertRaises(NotImplementedError,
|
| - service.get_quote, request)
|
| -
|
| - self.assertEquals(self.module.GetQuoteRequest,
|
| - service.get_quote.remote.request_type)
|
| - self.assertEquals(self.module.GetQuoteResponse,
|
| - service.get_quote.remote.response_type)
|
| -
|
| -
|
| -class ModuleTest(test_util.TestCase):
|
| - """Test for module creation and importation functions."""
|
| -
|
| - def MakeFileDescriptor(self, package):
|
| - """Helper method to construct FileDescriptors.
|
| -
|
| - Creates FileDescriptor with a MessageDescriptor and an EnumDescriptor.
|
| -
|
| - Args:
|
| - package: Package name to give new file descriptors.
|
| -
|
| - Returns:
|
| - New FileDescriptor instance.
|
| - """
|
| - enum_descriptor = descriptor.EnumDescriptor()
|
| - enum_descriptor.name = u'MyEnum'
|
| -
|
| - message_descriptor = descriptor.MessageDescriptor()
|
| - message_descriptor.name = u'MyMessage'
|
| -
|
| - service_descriptor = descriptor.ServiceDescriptor()
|
| - service_descriptor.name = u'MyService'
|
| -
|
| - file_descriptor = descriptor.FileDescriptor()
|
| - file_descriptor.package = package
|
| - file_descriptor.enum_types = [enum_descriptor]
|
| - file_descriptor.message_types = [message_descriptor]
|
| - file_descriptor.service_types = [service_descriptor]
|
| -
|
| - return file_descriptor
|
| -
|
| - def testDefineModule(self):
|
| - """Test define_module function."""
|
| - file_descriptor = self.MakeFileDescriptor('my.package')
|
| -
|
| - module = definition.define_file(file_descriptor)
|
| -
|
| - self.assertEquals('my.package', module.__name__)
|
| - self.assertEquals('my.package', module.MyEnum.__module__)
|
| - self.assertEquals('my.package', module.MyMessage.__module__)
|
| - self.assertEquals('my.package', module.MyService.__module__)
|
| -
|
| - self.assertEquals(file_descriptor, descriptor.describe_file(module))
|
| -
|
| - def testDefineModule_ReuseModule(self):
|
| - """Test updating module with additional definitions."""
|
| - file_descriptor = self.MakeFileDescriptor('my.package')
|
| -
|
| - module = types.ModuleType('override')
|
| - self.assertEquals(module, definition.define_file(file_descriptor, module))
|
| -
|
| - self.assertEquals('override', module.MyEnum.__module__)
|
| - self.assertEquals('override', module.MyMessage.__module__)
|
| - self.assertEquals('override', module.MyService.__module__)
|
| -
|
| - # One thing is different between original descriptor and new.
|
| - file_descriptor.package = 'override'
|
| - self.assertEquals(file_descriptor, descriptor.describe_file(module))
|
| -
|
| - def testImportFile(self):
|
| - """Test importing FileDescriptor in to module space."""
|
| - modules = {}
|
| - file_descriptor = self.MakeFileDescriptor('standalone')
|
| - definition.import_file(file_descriptor, modules=modules)
|
| - self.assertEquals(file_descriptor,
|
| - descriptor.describe_file(modules['standalone']))
|
| -
|
| - def testImportFile_InToExisting(self):
|
| - """Test importing FileDescriptor in to existing module."""
|
| - module = types.ModuleType('standalone')
|
| - modules = {'standalone': module}
|
| - file_descriptor = self.MakeFileDescriptor('standalone')
|
| - definition.import_file(file_descriptor, modules=modules)
|
| - self.assertEquals(module, modules['standalone'])
|
| - self.assertEquals(file_descriptor,
|
| - descriptor.describe_file(modules['standalone']))
|
| -
|
| - def testImportFile_InToGlobalModules(self):
|
| - """Test importing FileDescriptor in to global modules."""
|
| - original_modules = sys.modules
|
| - try:
|
| - sys.modules = dict(sys.modules)
|
| - if 'standalone' in sys.modules:
|
| - del sys.modules['standalone']
|
| - file_descriptor = self.MakeFileDescriptor('standalone')
|
| - definition.import_file(file_descriptor)
|
| - self.assertEquals(file_descriptor,
|
| - descriptor.describe_file(sys.modules['standalone']))
|
| - finally:
|
| - sys.modules = original_modules
|
| -
|
| - def testImportFile_Nested(self):
|
| - """Test importing FileDescriptor in to existing nested module."""
|
| - modules = {}
|
| - file_descriptor = self.MakeFileDescriptor('root.nested')
|
| - definition.import_file(file_descriptor, modules=modules)
|
| - self.assertEquals(modules['root'].nested, modules['root.nested'])
|
| - self.assertEquals(file_descriptor,
|
| - descriptor.describe_file(modules['root.nested']))
|
| -
|
| - def testImportFile_NoPackage(self):
|
| - """Test importing FileDescriptor with no package."""
|
| - file_descriptor = self.MakeFileDescriptor('does not matter')
|
| - file_descriptor.reset('package')
|
| - self.assertRaisesWithRegexpMatch(ValueError,
|
| - 'File descriptor must have package name',
|
| - definition.import_file,
|
| - file_descriptor)
|
| -
|
| - def testImportFileSet(self):
|
| - """Test importing a whole file set."""
|
| - file_set = descriptor.FileSet()
|
| - file_set.files = [self.MakeFileDescriptor(u'standalone'),
|
| - self.MakeFileDescriptor(u'root.nested'),
|
| - self.MakeFileDescriptor(u'root.nested.nested'),
|
| - ]
|
| -
|
| - root = types.ModuleType('root')
|
| - nested = types.ModuleType('root.nested')
|
| - root.nested = nested
|
| - modules = {
|
| - 'root': root,
|
| - 'root.nested': nested,
|
| - }
|
| -
|
| - definition.import_file_set(file_set, modules=modules)
|
| -
|
| - self.assertEquals(root, modules['root'])
|
| - self.assertEquals(nested, modules['root.nested'])
|
| - self.assertEquals(nested.nested, modules['root.nested.nested'])
|
| -
|
| - self.assertEquals(file_set,
|
| - descriptor.describe_file_set(
|
| - [modules['standalone'],
|
| - modules['root.nested'],
|
| - modules['root.nested.nested'],
|
| - ]))
|
| -
|
| - def testImportFileSetFromFile(self):
|
| - """Test importing a whole file set from a file."""
|
| - file_set = descriptor.FileSet()
|
| - file_set.files = [self.MakeFileDescriptor(u'standalone'),
|
| - self.MakeFileDescriptor(u'root.nested'),
|
| - self.MakeFileDescriptor(u'root.nested.nested'),
|
| - ]
|
| -
|
| - stream = StringIO.StringIO(protobuf.encode_message(file_set))
|
| -
|
| - self.mox = mox.Mox()
|
| - opener = self.mox.CreateMockAnything()
|
| - opener('my-file.dat', 'rb').AndReturn(stream)
|
| -
|
| - self.mox.ReplayAll()
|
| -
|
| - modules = {}
|
| - definition.import_file_set('my-file.dat', modules=modules, _open=opener)
|
| -
|
| - self.assertEquals(file_set,
|
| - descriptor.describe_file_set(
|
| - [modules['standalone'],
|
| - modules['root.nested'],
|
| - modules['root.nested.nested'],
|
| - ]))
|
| -
|
| - def testImportBuiltInProtorpcClasses(self):
|
| - """Test that built in Protorpc classes are skipped."""
|
| - file_set = descriptor.FileSet()
|
| - file_set.files = [self.MakeFileDescriptor(u'standalone'),
|
| - self.MakeFileDescriptor(u'root.nested'),
|
| - self.MakeFileDescriptor(u'root.nested.nested'),
|
| - descriptor.describe_file(descriptor),
|
| - ]
|
| -
|
| - root = types.ModuleType('root')
|
| - nested = types.ModuleType('root.nested')
|
| - root.nested = nested
|
| - modules = {
|
| - 'root': root,
|
| - 'root.nested': nested,
|
| - 'protorpc.descriptor': descriptor,
|
| - }
|
| -
|
| - definition.import_file_set(file_set, modules=modules)
|
| -
|
| - self.assertEquals(root, modules['root'])
|
| - self.assertEquals(nested, modules['root.nested'])
|
| - self.assertEquals(nested.nested, modules['root.nested.nested'])
|
| - self.assertEquals(descriptor, modules['protorpc.descriptor'])
|
| -
|
| - self.assertEquals(file_set,
|
| - descriptor.describe_file_set(
|
| - [modules['standalone'],
|
| - modules['root.nested'],
|
| - modules['root.nested.nested'],
|
| - modules['protorpc.descriptor'],
|
| - ]))
|
| -
|
| -
|
| -if __name__ == '__main__':
|
| - unittest.main()
|
|
|