Skip to content

Commit 915a47e

Browse files
committed
fix "NameError: name 'n' is not defined"; add 6 test cases
1 parent e6f5c82 commit 915a47e

File tree

2 files changed

+87
-5
lines changed

2 files changed

+87
-5
lines changed

Diff for: tests/test.py

+82
Original file line numberDiff line numberDiff line change
@@ -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":{},

Diff for: uliweb_apijson/apijson/__init__.py

+5-5
Original file line numberDiff line numberDiff line change
@@ -117,8 +117,8 @@ def _get_array_params(self):
117117
try:
118118
query_count = int(query_count)
119119
except ValueError as e:
120-
log.error("bad param in '%s': '%s'"%(n,self.query_params))
121-
raise UliwebError("@count should be an int, now '%s'"%(query_count))
120+
log.error("bad param in '%s': '%s'"%(query_count,self.query_params))
121+
raise UliwebError("@count should be an int, but get '%s'"%(query_count))
122122
self.query_count = query_count
123123

124124
query_page = self.query_params.get("@page")
@@ -127,10 +127,10 @@ def _get_array_params(self):
127127
try:
128128
query_page = int(query_page)
129129
except ValueError as e:
130-
log.error("bad param in '%s': '%s'"%(n,self.query_params))
131-
raise UliwebError("@page should be an int, now '%s'"%(query_page))
130+
log.error("bad param in '%s': '%s'"%(query_page,self.query_params))
131+
raise UliwebError("@page should be an int, but get '%s'"%(query_page))
132132
if query_page<0:
133-
raise UliwebError("page should >0, now is '%s'"%(query_page))
133+
raise UliwebError("page should >0, but get '%s'"%(query_page))
134134
self.query_page = query_page
135135

136136
#https://github.com/TommyLemon/APIJSON/blob/master/Document.md#32-%E5%8A%9F%E8%83%BD%E7%AC%A6

0 commit comments

Comments
 (0)