@@ -875,4 +875,50 @@ def test_apijson_head():
875
875
>>> d = json_loads(r.data)
876
876
>>> print(d)
877
877
{'code': 400, 'msg': "role 'UNKNOWN' not have permission HEAD for 'privacy'"}
878
+
879
+ >>> #apijson head, user don't have role
880
+ >>> data ='''{
881
+ ... "privacy": {
882
+ ... "@role":"ADMIN",
883
+ ... "id": 1
884
+ ... }
885
+ ... }'''
886
+ >>> r = handler.post('/apijson/head', data=data, pre_call=pre_call_as("usera"), middlewares=[])
887
+ >>> d = json_loads(r.data)
888
+ >>> print(d)
889
+ {'code': 400, 'msg': "user doesn't have role 'ADMIN'"}
890
+
891
+ >>> #apijson head, with OWNER
892
+ >>> data ='''{
893
+ ... "moment": {
894
+ ... "@role":"OWNER"
895
+ ... }
896
+ ... }'''
897
+ >>> r = handler.post('/apijson/head', data=data, pre_call=pre_call_as("usera"), middlewares=[])
898
+ Moment: owner_condition
899
+ >>> d = json_loads(r.data)
900
+ >>> print(d)
901
+ {'code': 200, 'msg': 'success', 'moment': {'code': 200, 'msg': 'success', 'count': 1}}
902
+
903
+ >>> #apijson head, with OWNER but cannot filter with OWNER
904
+ >>> data ='''{
905
+ ... "publicnotice": {
906
+ ... "@role":"OWNER"
907
+ ... }
908
+ ... }'''
909
+ >>> r = handler.post('/apijson/head', data=data, pre_call=pre_call_as("usera"), middlewares=[])
910
+ >>> d = json_loads(r.data)
911
+ >>> print(d)
912
+ {'code': 400, 'msg': "'publicnotice' cannot filter with owner"}
913
+
914
+ >>> #apijson head, with a nonexistant column
915
+ >>> data ='''{
916
+ ... "moment": {
917
+ ... "nonexist": 2
918
+ ... }
919
+ ... }'''
920
+ >>> r = handler.post('/apijson/head', data=data, pre_call=pre_call_as("admin"), middlewares=[])
921
+ >>> d = json_loads(r.data)
922
+ >>> print(d)
923
+ {'code': 400, 'msg': "'moment' don't have field 'nonexist'"}
878
924
"""
0 commit comments