def test_get_id_from_id_then_name_empty(self): _id = str(uuid.uuid4()) reses = { 'networks': [ { 'id': _id, }, ], } resstr = self.client.serialize(reses) resstr1 = self.client.serialize({'networks': []}) self.mox.StubOutWithMock(self.client.httpclient, "request") path = getattr(self.client, "networks_path") self.client.httpclient.request( test_cli20.end_url(path, "fields=id&id=" + _id), 'GET', body=None, headers=ContainsKeyValue('X-Auth-Token', test_cli20.TOKEN)).AndReturn( (test_cli20.MyResp(200), resstr1)) self.client.httpclient.request( test_cli20.end_url(path, "fields=id&name=" + _id), 'GET', body=None, headers=ContainsKeyValue('X-Auth-Token', test_cli20.TOKEN)).AndReturn( (test_cli20.MyResp(200), resstr)) self.mox.ReplayAll() returned_id = quantumv20.find_resourceid_by_name_or_id( self.client, 'network', _id) self.assertEqual(_id, returned_id)
def _test_show_resource(self, resource, cmd, myid, args, fields=[]): self.mox.StubOutWithMock(cmd, "get_client") self.mox.StubOutWithMock(self.client.httpclient, "request") cmd.get_client().MultipleTimes().AndReturn(self.client) query = "&".join(["fields=%s" % field for field in fields]) expected_res = { resource: { 'id': myid, 'name': 'myname', }, } resstr = self.client.serialize(expected_res) path = getattr(self.client, resource + "_path") self.client.httpclient.request(end_url(path % myid, query), 'GET', body=None, headers=ContainsKeyValue( 'X-Auth-Token', TOKEN)).AndReturn( (MyResp(200), resstr)) self.mox.ReplayAll() cmd_parser = cmd.get_parser("show_" + resource) parsed_args = cmd_parser.parse_args(args) cmd.run(parsed_args) self.mox.VerifyAll() self.mox.UnsetStubs() _str = self.fake_stdout.make_string() self.assertTrue(myid in _str) self.assertTrue('myname' in _str)
def test_get_id_from_name_multiple(self): name = 'myname' reses = { 'networks': [{ 'id': str(uuid.uuid4()) }, { 'id': str(uuid.uuid4()) }] } resstr = self.client.serialize(reses) self.mox.StubOutWithMock(self.client.httpclient, "request") path = getattr(self.client, "networks_path") self.client.httpclient.request( test_cli20.end_url(path, "fields=id&name=" + name), 'GET', body=None, headers=ContainsKeyValue('X-Auth-Token', test_cli20.TOKEN)).AndReturn( (test_cli20.MyResp(200), resstr)) self.mox.ReplayAll() try: quantumv20.find_resourceid_by_name_or_id(self.client, 'network', name) except exceptions.QuantumClientException as ex: self.assertTrue('Multiple' in ex.message)
def _test_create_resource(self, resource, cmd, name, myid, args, position_names, position_values, tenant_id=None, tags=None, admin_state_up=True, shared=False): self.mox.StubOutWithMock(cmd, "get_client") self.mox.StubOutWithMock(self.client.httpclient, "request") cmd.get_client().MultipleTimes().AndReturn(self.client) if (resource == 'subnet' or resource == 'floatingip'): body = { resource: {}, } else: body = { resource: { 'admin_state_up': admin_state_up, }, } if tenant_id: body[resource].update({'tenant_id': tenant_id}) if tags: body[resource].update({'tags': tags}) if shared: body[resource].update({'shared': shared}) for i in xrange(len(position_names)): body[resource].update({position_names[i]: position_values[i]}) ress = { resource: { 'id': myid, 'name': name, }, } resstr = self.client.serialize(ress) # url method body path = getattr(self.client, resource + "s_path") self.client.httpclient.request(end_url(path), 'POST', body=MyComparator(body, self.client), headers=ContainsKeyValue( 'X-Auth-Token', TOKEN)).AndReturn( (MyResp(200), resstr)) self.mox.ReplayAll() cmd_parser = cmd.get_parser('create_' + resource) parsed_args = cmd_parser.parse_args(args) cmd.run(parsed_args) self.mox.VerifyAll() self.mox.UnsetStubs() _str = self.fake_stdout.make_string() self.assertTrue(myid in _str) self.assertTrue(name in _str)
def _test_delete_resource(self, resource, cmd, myid, args): self.mox.StubOutWithMock(cmd, "get_client") self.mox.StubOutWithMock(self.client.httpclient, "request") cmd.get_client().MultipleTimes().AndReturn(self.client) path = getattr(self.client, resource + "_path") self.client.httpclient.request(end_url(path % myid), 'DELETE', body=None, headers=ContainsKeyValue( 'X-Auth-Token', TOKEN)).AndReturn( (MyResp(204), None)) self.mox.ReplayAll() cmd_parser = cmd.get_parser("delete_" + resource) parsed_args = cmd_parser.parse_args(args) cmd.run(parsed_args) self.mox.VerifyAll() self.mox.UnsetStubs() _str = self.fake_stdout.make_string() self.assertTrue(myid in _str)
def _test_update_resource_action(self, resource, cmd, myid, action, args, body): self.mox.StubOutWithMock(cmd, "get_client") self.mox.StubOutWithMock(self.client.httpclient, "request") cmd.get_client().MultipleTimes().AndReturn(self.client) path = getattr(self.client, resource + "_path") path_action = '%s/%s' % (myid, action) self.client.httpclient.request(end_url(path % path_action), 'PUT', body=MyComparator(body, self.client), headers=ContainsKeyValue( 'X-Auth-Token', TOKEN)).AndReturn( (MyResp(204), None)) self.mox.ReplayAll() cmd_parser = cmd.get_parser("update_" + resource) parsed_args = cmd_parser.parse_args(args) cmd.run(parsed_args) self.mox.VerifyAll() self.mox.UnsetStubs() _str = self.fake_stdout.make_string() self.assertTrue(myid in _str)
def _test_list_columns(self, cmd, resources_collection, resources_out, args=['-f', 'json']): self.mox.StubOutWithMock(cmd, "get_client") self.mox.StubOutWithMock(self.client.httpclient, "request") cmd.get_client().MultipleTimes().AndReturn(self.client) resstr = self.client.serialize(resources_out) path = getattr(self.client, resources_collection + "_path") self.client.httpclient.request(end_url(path), 'GET', body=None, headers=ContainsKeyValue( 'X-Auth-Token', TOKEN)).AndReturn( (MyResp(200), resstr)) self.mox.ReplayAll() cmd_parser = cmd.get_parser("list_" + resources_collection) parsed_args = cmd_parser.parse_args(args) cmd.run(parsed_args) self.mox.VerifyAll() self.mox.UnsetStubs()
def _test_list_resources(self, resources, cmd, detail=False, tags=[], fields_1=[], fields_2=[]): self.mox.StubOutWithMock(cmd, "get_client") self.mox.StubOutWithMock(self.client.httpclient, "request") cmd.get_client().MultipleTimes().AndReturn(self.client) reses = { resources: [ { 'id': 'myid1', }, { 'id': 'myid2', }, ], } resstr = self.client.serialize(reses) # url method body query = "" args = detail and [ '-D', ] or [] if fields_1: for field in fields_1: args.append('--fields') args.append(field) if tags: args.append('--') args.append("--tag") for tag in tags: if query: query += "&tag=" + tag else: query = "tag=" + tag args.append(tag) if (not tags) and fields_2: args.append('--') if fields_2: args.append("--fields") for field in fields_2: args.append(field) if detail: query = query and query + '&verbose=True' or 'verbose=True' fields_1.extend(fields_2) for field in fields_1: if query: query += "&fields=" + field else: query = "fields=" + field path = getattr(self.client, resources + "_path") self.client.httpclient.request(end_url(path, query), 'GET', body=None, headers=ContainsKeyValue( 'X-Auth-Token', TOKEN)).AndReturn( (MyResp(200), resstr)) self.mox.ReplayAll() cmd_parser = cmd.get_parser("list_" + resources) parsed_args = cmd_parser.parse_args(args) cmd.run(parsed_args) self.mox.VerifyAll() self.mox.UnsetStubs() _str = self.fake_stdout.make_string() self.assertTrue('myid1' in _str)