Revision 208a6cff test/ganeti.rapi.client_unittest.py
b/test/ganeti.rapi.client_unittest.py | ||
---|---|---|
31 | 31 |
from ganeti import http |
32 | 32 |
from ganeti import serializer |
33 | 33 |
from ganeti import utils |
34 |
from ganeti import query |
|
35 |
from ganeti import objects |
|
34 | 36 |
|
35 | 37 |
from ganeti.rapi import connector |
36 | 38 |
from ganeti.rapi import rlib2 |
... | ... | |
1152 | 1154 |
self.assertEqual(data["amount"], amount) |
1153 | 1155 |
self.assertEqual(self.rapi.CountPending(), 0) |
1154 | 1156 |
|
1157 |
def testQuery(self): |
|
1158 |
for idx, what in enumerate(constants.QR_VIA_RAPI): |
|
1159 |
for idx2, filter_ in enumerate([None, ["?", "name"]]): |
|
1160 |
job_id = 11010 + (idx << 4) + (idx2 << 16) |
|
1161 |
fields = sorted(query.ALL_FIELDS[what].keys())[:10] |
|
1162 |
|
|
1163 |
self.rapi.AddResponse(str(job_id)) |
|
1164 |
self.assertEqual(self.client.Query(what, fields, filter_=filter_), |
|
1165 |
job_id) |
|
1166 |
self.assertItems([what]) |
|
1167 |
self.assertHandler(rlib2.R_2_query) |
|
1168 |
self.assertFalse(self.rapi.GetLastHandler().queryargs) |
|
1169 |
data = serializer.LoadJson(self.rapi.GetLastRequestData()) |
|
1170 |
self.assertEqual(data["fields"], fields) |
|
1171 |
if filter_ is None: |
|
1172 |
self.assertTrue("filter" not in data) |
|
1173 |
else: |
|
1174 |
self.assertEqual(data["filter"], filter_) |
|
1175 |
self.assertEqual(self.rapi.CountPending(), 0) |
|
1176 |
|
|
1177 |
def testQueryFields(self): |
|
1178 |
exp_result = objects.QueryFieldsResponse(fields=[ |
|
1179 |
objects.QueryFieldDefinition(name="pnode", title="PNode", |
|
1180 |
kind=constants.QFT_NUMBER), |
|
1181 |
objects.QueryFieldDefinition(name="other", title="Other", |
|
1182 |
kind=constants.QFT_BOOL), |
|
1183 |
]) |
|
1184 |
|
|
1185 |
for what in constants.QR_VIA_RAPI: |
|
1186 |
for fields in [None, ["name", "_unknown_"], ["&", "?|"]]: |
|
1187 |
self.rapi.AddResponse(serializer.DumpJson(exp_result.ToDict())) |
|
1188 |
result = self.client.QueryFields(what, fields=fields) |
|
1189 |
self.assertItems([what]) |
|
1190 |
self.assertHandler(rlib2.R_2_query_fields) |
|
1191 |
self.assertFalse(self.rapi.GetLastRequestData()) |
|
1192 |
|
|
1193 |
queryargs = self.rapi.GetLastHandler().queryargs |
|
1194 |
if fields is None: |
|
1195 |
self.assertFalse(queryargs) |
|
1196 |
else: |
|
1197 |
self.assertEqual(queryargs, { |
|
1198 |
"fields": [",".join(fields)], |
|
1199 |
}) |
|
1200 |
|
|
1201 |
self.assertEqual(objects.QueryFieldsResponse.FromDict(result).ToDict(), |
|
1202 |
exp_result.ToDict()) |
|
1203 |
|
|
1204 |
self.assertEqual(self.rapi.CountPending(), 0) |
|
1205 |
|
|
1155 | 1206 |
|
1156 | 1207 |
class RapiTestRunner(unittest.TextTestRunner): |
1157 | 1208 |
def run(self, *args): |
Also available in: Unified diff