Skip to content

Commit 0fb0711

Browse files
committed
fix "NameError: name 'model_name' is not defined"; add 3 test cases
1 parent 915a47e commit 0fb0711

File tree

2 files changed

+44
-1
lines changed

2 files changed

+44
-1
lines changed

Diff for: tests/test.py

+43
Original file line numberDiff line numberDiff line change
@@ -371,6 +371,49 @@ def test_apijson_get():
371371
>>> print(d)
372372
{'code': 400, 'msg': "page should >0, but get '-2'"}
373373
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+
374417
>>> #Association query: Two tables, one to one,ref path is absolute path
375418
>>> data ='''{
376419
... "moment":{},

Diff for: uliweb_apijson/apijson/__init__.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ def _filter_owner(self,q):
153153
q = q.filter(getattr(model.c,user_id_field)==request.user.id)
154154
owner_filtered = True
155155
if not owner_filtered:
156-
raise UliwebError("'%s' cannot filter with owner"%(model_name))
156+
raise UliwebError("'%s' cannot filter with owner"%(self.name))
157157
return q
158158

159159
def _get_array_q(self,params):

0 commit comments

Comments
 (0)