@@ -289,6 +289,88 @@ def test_apijson_get():
289
289
>>> print(d)
290
290
{'code': 400, 'msg': "no login user for role 'ADMIN'"}
291
291
292
+ >>> #query array with a role which the user doesn't really have
293
+ >>> data ='''{
294
+ ... "[]":{
295
+ ... "user": {
296
+ ... "@role":"ADMIN",
297
+ ... "@column":"id,username,nickname,email"
298
+ ... }
299
+ ... }
300
+ ... }'''
301
+ >>> r = handler.post('/apijson/get', data=data, pre_call=pre_call_as("usera"), middlewares=[])
302
+ >>> d = json_loads(r.data)
303
+ >>> print(d)
304
+ {'code': 400, 'msg': "user doesn't have role 'ADMIN'"}
305
+
306
+ >>> #query array with @count
307
+ >>> data ='''{
308
+ ... "[]":{
309
+ ... "@count":3,
310
+ ... "user": {
311
+ ... }
312
+ ... }
313
+ ... }'''
314
+ >>> r = handler.post('/apijson/get', data=data, pre_call=pre_call_as("usera"), middlewares=[])
315
+ >>> d = json_loads(r.data)
316
+ >>> print(d)
317
+ {'code': 200, 'msg': 'success', '[]': [{'user': {'username': 'admin', 'nickname': 'Administrator', 'email': 'admin@localhost', 'is_superuser': True, 'last_login': None, 'date_join': '2018-11-01 00:00:00', 'image': '', 'active': False, 'locked': False, 'deleted': False, 'auth_type': 'default', 'timezone': '', 'id': 1}}, {'user': {'username': 'usera', 'nickname': 'User A', 'email': 'usera@localhost', 'is_superuser': False, 'last_login': None, 'date_join': '2018-02-02 00:00:00', 'image': '', 'active': False, 'locked': False, 'deleted': False, 'auth_type': 'default', 'timezone': '', 'id': 2}}, {'user': {'username': 'userb', 'nickname': 'User B', 'email': 'userb@localhost', 'is_superuser': False, 'last_login': None, 'date_join': '2018-03-03 00:00:00', 'image': '', 'active': False, 'locked': False, 'deleted': False, 'auth_type': 'default', 'timezone': '', 'id': 3}}]}
318
+
319
+ >>> #query array ,@count is bad param
320
+ >>> data ='''{
321
+ ... "[]":{
322
+ ... "@count":"bad",
323
+ ... "user": {
324
+ ... }
325
+ ... }
326
+ ... }'''
327
+ >>> r = handler.post('/apijson/get', data=data, pre_call=pre_call_as("usera"), middlewares=[])
328
+ >>> d = json_loads(r.data)
329
+ >>> print(d)
330
+ {'code': 400, 'msg': "@count should be an int, but get 'bad'"}
331
+
332
+ >>> #query array with @count and @page
333
+ >>> data ='''{
334
+ ... "[]":{
335
+ ... "@count":2,
336
+ ... "@page":1,
337
+ ... "user": {
338
+ ... }
339
+ ... }
340
+ ... }'''
341
+ >>> r = handler.post('/apijson/get', data=data, pre_call=pre_call_as("usera"), middlewares=[])
342
+ >>> d = json_loads(r.data)
343
+ >>> print(d)
344
+ {'code': 200, 'msg': 'success', '[]': [{'user': {'username': 'userb', 'nickname': 'User B', 'email': 'userb@localhost', 'is_superuser': False, 'last_login': None, 'date_join': '2018-03-03 00:00:00', 'image': '', 'active': False, 'locked': False, 'deleted': False, 'auth_type': 'default', 'timezone': '', 'id': 3}}, {'user': {'username': 'userc', 'nickname': 'User C', 'email': 'userc@localhost', 'is_superuser': False, 'last_login': None, 'date_join': '2018-04-04 00:00:00', 'image': '', 'active': False, 'locked': False, 'deleted': False, 'auth_type': 'default', 'timezone': '', 'id': 4}}]}
345
+
346
+ >>> #query array with @count and @page, @page bad param
347
+ >>> data ='''{
348
+ ... "[]":{
349
+ ... "@count":2,
350
+ ... "@page":"bad",
351
+ ... "user": {
352
+ ... }
353
+ ... }
354
+ ... }'''
355
+ >>> r = handler.post('/apijson/get', data=data, pre_call=pre_call_as("usera"), middlewares=[])
356
+ >>> d = json_loads(r.data)
357
+ >>> print(d)
358
+ {'code': 400, 'msg': "@page should be an int, but get 'bad'"}
359
+
360
+ >>> #query array with @count and @page, @page <0
361
+ >>> data ='''{
362
+ ... "[]":{
363
+ ... "@count":2,
364
+ ... "@page":-2,
365
+ ... "user": {
366
+ ... }
367
+ ... }
368
+ ... }'''
369
+ >>> r = handler.post('/apijson/get', data=data, pre_call=pre_call_as("usera"), middlewares=[])
370
+ >>> d = json_loads(r.data)
371
+ >>> print(d)
372
+ {'code': 400, 'msg': "page should >0, but get '-2'"}
373
+
292
374
>>> #Association query: Two tables, one to one,ref path is absolute path
293
375
>>> data ='''{
294
376
... "moment":{},
0 commit comments