@@ -867,6 +867,45 @@ def test_apijson_get():
867867 >>> print(d)
868868 {'code': 200, 'msg': 'success', '[]': [{'moment': {'user_id': 2, 'date': '2018-11-01 00:00:00', 'content': 'test moment', 'picture_list': '[]', 'id': 1}}]}
869869
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+
870909 >>> #query array, !{} <
871910 >>> data ='''{
872911 ... "[]":{
@@ -951,6 +990,21 @@ def test_apijson_get():
951990 >>> print(d)
952991 {'code': 200, 'msg': 'success', '[]': [{'user': {'username': 'userb', 'nickname': 'User B', 'id': 3}}, {'user': {'username': 'userc', 'nickname': 'User C', 'id': 4}}]}
953992
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+
9541008 >>> #query array, {} multiple condition to a same field
9551009 >>> data ='''{
9561010 ... "[]":{
0 commit comments