Beispiel #1
0
 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()))
Beispiel #2
0
 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()))
Beispiel #3
0
 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)
Beispiel #4
0
 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')
Beispiel #5
0
 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)
Beispiel #6
0
 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')
Beispiel #7
0
 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.')
Beispiel #8
0
    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()