def testGenerateAtomicListRaw(self): self.MockCRUDMethods(('foo.projects.instances', True)) method = registry.GetMethod('foo.projects.instances', 'list') gen = arg_marshalling.AutoArgumentGenerator(method, raw=True) (_, args) = CheckArgs(gen.GenerateArgs()) self.assertEqual([ '--pageSize', '--pageToken', '--parent', '--projectsId', 'resource' ], sorted(args.keys()))
def testGenerateFlatList(self): self.MockCRUDMethods(('foo.projects.instances', False)) method = registry.GetMethod('foo.projects.instances', 'list') gen = arg_marshalling.AutoArgumentGenerator(method, raw=False) (_, args) = CheckArgs(gen.GenerateArgs()) self.assertEqual([ '--filter', '--limit', '--page-size', '--projectsId', '--sort-by', 'resource' ], sorted(args.keys()))
def testCreateFlatList(self, resource, projects_id, prop, filter_arg, sort_by, result): properties.VALUES.core.project.Set(prop) self.MockCRUDMethods(('foo.projects.instances', False)) method = registry.GetMethod('foo.projects.instances', 'list') gen = arg_marshalling.AutoArgumentGenerator(method, raw=False) mock_request_type = method.GetRequestType() gen.CreateRequest( mock.MagicMock(resource=resource, projectsId=projects_id, filter=filter_arg, sort_by=sort_by)) mock_request_type.assert_called_once_with(**result)
def testCreateFlatGet(self, raw, data): resource, projects_id, prop, instances_id = data properties.VALUES.core.project.Set(prop) self.MockCRUDMethods(('foo.projects.instances', False)) method = registry.GetMethod('foo.projects.instances', 'get') gen = arg_marshalling.AutoArgumentGenerator(method, raw=raw) mock_request_type = method.GetRequestType() gen.CreateRequest( mock.MagicMock(resource=resource, projectsId=projects_id, instancesId=instances_id)) mock_request_type.assert_called_once_with(instancesId='i', projectsId='p')
def testCreateAtomicListRaw(self, resource, parent, projects_id, prop, page_token, page_size, result): properties.VALUES.core.project.Set(prop) self.MockCRUDMethods(('foo.projects.instances', True)) method = registry.GetMethod('foo.projects.instances', 'list') gen = arg_marshalling.AutoArgumentGenerator(method, raw=True) mock_request_type = method.GetRequestType() m = mock.MagicMock(resource=resource, projectsId=projects_id, pageToken=page_token, pageSize=page_size) m.parent = parent gen.CreateRequest(m) mock_request_type.assert_called_once_with(**result)
def testCreateAtomicGet(self, raw, data): resource, projects_id, prop, instances_id, name = data properties.VALUES.core.project.Set(prop) self.MockCRUDMethods(('foo.projects.instances', True)) method = registry.GetMethod('foo.projects.instances', 'get') gen = arg_marshalling.AutoArgumentGenerator(method, raw=raw) mock_request_type = method.GetRequestType() m = mock.MagicMock(resource=resource, projectsId=projects_id, instancesId=instances_id) m.name = name gen.CreateRequest(m) mock_request_type.assert_called_once_with( name='projects/p/instances/i')
def testGenerateFlatGet(self, raw): self.MockCRUDMethods(('foo.projects.instances', False)) method = registry.GetMethod('foo.projects.instances', 'get') gen = arg_marshalling.AutoArgumentGenerator(method, raw=raw) (_, args) = CheckArgs(gen.GenerateArgs()) self.assertEqual(['--instancesId', '--projectsId', 'resource'], sorted(args.keys())) self.assertEqual( args['--instancesId'].kwargs['help'], 'For substitution into: projects/{projectsId}/instances/{instancesId}' ) self.assertEqual( args['--projectsId'].kwargs['help'], 'For substitution into: projects/{projectsId}/instances/{instancesId}' ) self.assertEqual(args['resource'].kwargs['help'], 'The GRI for the resource being operated on.')
def GenerateArgs(self, namespace, method_name): # Get the collection from the existing parsed args. full_collection_name = getattr(namespace, 'collection', None) api_version = getattr(namespace, 'api_version', None) if not full_collection_name: raise c_exc.RequiredArgumentException( '--collection', 'The collection name must be specified before the API method.') # Look up the method and get all the args for it. method = registry.GetMethod(full_collection_name, method_name, api_version=api_version) arg_generator = arg_marshalling.AutoArgumentGenerator( method, raw=namespace.raw) method_ref = MethodRef(namespace, method, arg_generator) setattr(namespace, self._dest, method_ref) return arg_generator.GenerateArgs()