@@ -867,6 +867,45 @@ def test_apijson_get():
867
867
>>> print(d)
868
868
{'code': 200, 'msg': 'success', '[]': [{'moment': {'user_id': 2, 'date': '2018-11-01 00:00:00', 'content': 'test moment', 'picture_list': '[]', 'id': 1}}]}
869
869
870
+ >>> #query array, {} <= with datetime
871
+ >>> data ='''{
872
+ ... "[]":{
873
+ ... "moment": {
874
+ ... "date{}": "<='2018-11-02 00:00'"
875
+ ... }
876
+ ... }
877
+ ... }'''
878
+ >>> r = handler.post('/apijson/get', data=data, pre_call=pre_call_as("admin"), middlewares=[])
879
+ >>> d = json_loads(r.data)
880
+ >>> print(d)
881
+ {'code': 200, 'msg': 'success', '[]': [{'moment': {'user_id': 2, 'date': '2018-11-01 00:00:00', 'content': 'test moment', 'picture_list': '[]', 'id': 1}}, {'moment': {'user_id': 3, 'date': '2018-11-02 00:00:00', 'content': 'test moment from b', 'picture_list': '[]', 'id': 2}}]}
882
+
883
+ >>> #query array, {} >= with datetime
884
+ >>> data ='''{
885
+ ... "[]":{
886
+ ... "moment": {
887
+ ... "date{}": ">='2018-11-02 00:00'"
888
+ ... }
889
+ ... }
890
+ ... }'''
891
+ >>> r = handler.post('/apijson/get', data=data, pre_call=pre_call_as("admin"), middlewares=[])
892
+ >>> d = json_loads(r.data)
893
+ >>> print(d)
894
+ {'code': 200, 'msg': 'success', '[]': [{'moment': {'user_id': 3, 'date': '2018-11-02 00:00:00', 'content': 'test moment from b', 'picture_list': '[]', 'id': 2}}, {'moment': {'user_id': 4, 'date': '2018-11-06 00:00:00', 'content': 'test moment from c', 'picture_list': '[]', 'id': 3}}]}
895
+
896
+ >>> #query array, {} >= with a invalid datetime
897
+ >>> data ='''{
898
+ ... "[]":{
899
+ ... "moment": {
900
+ ... "date{}": ">='2018-11-42 00:00'"
901
+ ... }
902
+ ... }
903
+ ... }'''
904
+ >>> r = handler.post('/apijson/get', data=data, pre_call=pre_call_as("admin"), middlewares=[])
905
+ >>> d = json_loads(r.data)
906
+ >>> print(d)
907
+ {'code': 400, 'msg': "''2018-11-42 00:00'' cannot convert to datetime"}
908
+
870
909
>>> #query array, !{} <
871
910
>>> data ='''{
872
911
... "[]":{
@@ -951,6 +990,21 @@ def test_apijson_get():
951
990
>>> print(d)
952
991
{'code': 200, 'msg': 'success', '[]': [{'user': {'username': 'userb', 'nickname': 'User B', 'id': 3}}, {'user': {'username': 'userc', 'nickname': 'User C', 'id': 4}}]}
953
992
993
+ >>> #query array, &{} condition list
994
+ >>> data ='''{
995
+ ... "[]":{
996
+ ... "user": {
997
+ ... "@role": "ADMIN",
998
+ ... "date_join&{}": ">='2018-1-1 00:00',<='2018-2-2 00:00'",
999
+ ... "@column": "username,nickname,id,date_join"
1000
+ ... }
1001
+ ... }
1002
+ ... }'''
1003
+ >>> r = handler.post('/apijson/get', data=data, pre_call=pre_call_as("admin"), middlewares=[])
1004
+ >>> d = json_loads(r.data)
1005
+ >>> print(d)
1006
+ {'code': 200, 'msg': 'success', '[]': [{'user': {'username': 'admin', 'nickname': 'Administrator', 'date_join': '2018-01-01 00:00:00', 'id': 1}}, {'user': {'username': 'usera', 'nickname': 'User A', 'date_join': '2018-02-02 00:00:00', 'id': 2}}]}
1007
+
954
1008
>>> #query array, {} multiple condition to a same field
955
1009
>>> data ='''{
956
1010
... "[]":{
0 commit comments