@@ -289,6 +289,88 @@ def test_apijson_get():
289289 >>> print(d)
290290 {'code': 400, 'msg': "no login user for role 'ADMIN'"}
291291
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+
292374 >>> #Association query: Two tables, one to one,ref path is absolute path
293375 >>> data ='''{
294376 ... "moment":{},
0 commit comments