@@ -371,6 +371,49 @@ def test_apijson_get():
371
371
>>> print(d)
372
372
{'code': 400, 'msg': "page should >0, but get '-2'"}
373
373
374
+ >>> #query array with @count/@page/@query, @query bad param
375
+ >>> data ='''{
376
+ ... "[]":{
377
+ ... "@count":2,
378
+ ... "@page":1,
379
+ ... "@query":3,
380
+ ... "user": {
381
+ ... }
382
+ ... }
383
+ ... }'''
384
+ >>> r = handler.post('/apijson/get', data=data, pre_call=pre_call_as("usera"), middlewares=[])
385
+ >>> d = json_loads(r.data)
386
+ >>> print(d)
387
+ {'code': 400, 'msg': "bad param 'query': 3"}
388
+
389
+ >>> #query array with @count/@page/@query, @query = 0
390
+ >>> data ='''{
391
+ ... "[]":{
392
+ ... "@count":2,
393
+ ... "@page":1,
394
+ ... "@query":0,
395
+ ... "user": {
396
+ ... }
397
+ ... }
398
+ ... }'''
399
+ >>> r = handler.post('/apijson/get', data=data, pre_call=pre_call_as("usera"), middlewares=[])
400
+ >>> d = json_loads(r.data)
401
+ >>> print(d)
402
+ {'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}}]}
403
+
404
+ >>> #query array with OWNER but cannot filter with OWNER
405
+ >>> data ='''{
406
+ ... "[]":{
407
+ ... "publicnotice": {
408
+ ... "@role":"OWNER"
409
+ ... }
410
+ ... }
411
+ ... }'''
412
+ >>> r = handler.post('/apijson/get', data=data, pre_call=pre_call_as("admin"), middlewares=[])
413
+ >>> d = json_loads(r.data)
414
+ >>> print(d)
415
+ {'code': 400, 'msg': "'publicnotice' cannot filter with owner"}
416
+
374
417
>>> #Association query: Two tables, one to one,ref path is absolute path
375
418
>>> data ='''{
376
419
... "moment":{},