@@ -1024,4 +1024,213 @@ def test_apijson_put():
1024
1024
>>> d = json_loads(r.data)
1025
1025
>>> print(d)
1026
1026
{'code': 200, 'msg': 'success', 'moment': {'id': 1, 'code': 200, 'msg': 'success', 'count': 1}}
1027
+
1028
+ >>> #apijson put, model not exists
1029
+ >>> data ='''{
1030
+ ... "nonexist": {
1031
+ ... "@role": "ADMIN",
1032
+ ... "id": 1,
1033
+ ... "content": "moment content after change 2"
1034
+ ... },
1035
+ ... "@tag": "nonexist"
1036
+ ... }'''
1037
+ >>> r = handler.post('/apijson/put', data=data, pre_call=pre_call_as("admin"), middlewares=[])
1038
+ >>> d = json_loads(r.data)
1039
+ >>> print(d)
1040
+ {'code': 400, 'msg': "model 'nonexist' not found"}
1041
+
1042
+ >>> #apijson put, with a model no tag
1043
+ >>> data ='''{
1044
+ ... "norequesttag": {
1045
+ ... "user_id": 1,
1046
+ ... "content": "test"
1047
+ ... },
1048
+ ... "@tag": "norequesttag"
1049
+ ... }'''
1050
+ >>> r = handler.post('/apijson/put', data=data, pre_call=pre_call_as("usera"), middlewares=[])
1051
+ >>> d = json_loads(r.data)
1052
+ >>> print(d)
1053
+ {'code': 400, 'msg': "tag 'norequesttag' not found"}
1054
+
1055
+ >>> #apijson put, test ADD in put
1056
+ >>> data ='''{
1057
+ ... "moment": {
1058
+ ... "id": 2,
1059
+ ... "content": "moment content after change"
1060
+ ... },
1061
+ ... "@tag": "moment"
1062
+ ... }'''
1063
+ >>> r = handler.post('/apijson/put', data=data, pre_call=pre_call_as("usera"), middlewares=[])
1064
+ >>> d = json_loads(r.data)
1065
+ >>> print(d)
1066
+ {'code': 400, 'msg': 'no permission'}
1067
+
1068
+ >>> #apijson put, without id
1069
+ >>> data ='''{
1070
+ ... "moment": {
1071
+ ... "content": "moment content after change"
1072
+ ... },
1073
+ ... "@tag": "moment"
1074
+ ... }'''
1075
+ >>> r = handler.post('/apijson/put', data=data, pre_call=pre_call_as("usera"), middlewares=[])
1076
+ >>> d = json_loads(r.data)
1077
+ >>> print(d)
1078
+ {'code': 400, 'msg': 'id param needed'}
1079
+
1080
+ >>> #apijson put, with id not integer
1081
+ >>> data ='''{
1082
+ ... "moment": {
1083
+ ... "id": "abc",
1084
+ ... "content": "moment content after change"
1085
+ ... },
1086
+ ... "@tag": "moment"
1087
+ ... }'''
1088
+ >>> r = handler.post('/apijson/put', data=data, pre_call=pre_call_as("usera"), middlewares=[])
1089
+ >>> d = json_loads(r.data)
1090
+ >>> print(d)
1091
+ {'code': 400, 'msg': "id 'abc' cannot convert to integer"}
1092
+
1093
+ >>> #apijson put, with a id cannot find record
1094
+ >>> data ='''{
1095
+ ... "moment": {
1096
+ ... "id": 100,
1097
+ ... "content": "moment content after change"
1098
+ ... },
1099
+ ... "@tag": "moment"
1100
+ ... }'''
1101
+ >>> r = handler.post('/apijson/put', data=data, pre_call=pre_call_as("usera"), middlewares=[])
1102
+ >>> d = json_loads(r.data)
1103
+ >>> print(d)
1104
+ {'code': 400, 'msg': "cannot find record which id = '100'"}
1105
+
1106
+ >>> #apijson put, with a role which have no permission
1107
+ >>> data ='''{
1108
+ ... "moment": {
1109
+ ... "@role": "LOGIN",
1110
+ ... "id": 1,
1111
+ ... "content": "moment content after change"
1112
+ ... },
1113
+ ... "@tag": "moment"
1114
+ ... }'''
1115
+ >>> r = handler.post('/apijson/put', data=data, pre_call=pre_call_as("usera"), middlewares=[])
1116
+ >>> d = json_loads(r.data)
1117
+ >>> print(d)
1118
+ {'code': 400, 'msg': "'moment' not accessible by role 'LOGIN'"}
1119
+
1120
+ >>> #apijson put, with UNKNOWN role
1121
+ >>> data ='''{
1122
+ ... "publicnotice": {
1123
+ ... "@role": "UNKNOWN",
1124
+ ... "id": 1,
1125
+ ... "content": "content after change"
1126
+ ... },
1127
+ ... "@tag": "publicnotice"
1128
+ ... }'''
1129
+ >>> r = handler.post('/apijson/put', data=data, pre_call=pre_call_as("usera"), middlewares=[])
1130
+ >>> d = json_loads(r.data)
1131
+ >>> print(d)
1132
+ {'code': 200, 'msg': 'success', 'publicnotice': {'id': 1, 'code': 200, 'msg': 'success', 'count': 1}}
1133
+
1134
+ >>> #apijson put, OWNER but not login
1135
+ >>> data ='''{
1136
+ ... "moment": {
1137
+ ... "id": 1,
1138
+ ... "content": "moment content after change"
1139
+ ... },
1140
+ ... "@tag": "moment"
1141
+ ... }'''
1142
+ >>> r = handler.post('/apijson/put', data=data, middlewares=[])
1143
+ >>> d = json_loads(r.data)
1144
+ >>> print(d)
1145
+ {'code': 400, 'msg': "'OWNER' need login user"}
1146
+
1147
+ >>> #apijson put, with a role not permission
1148
+ >>> data ='''{
1149
+ ... "moment": {
1150
+ ... "@role": "superuser",
1151
+ ... "id": 1,
1152
+ ... "content": "moment content after change"
1153
+ ... },
1154
+ ... "@tag": "moment"
1155
+ ... }'''
1156
+ >>> r = handler.post('/apijson/put', data=data, pre_call=pre_call_as("admin"), middlewares=[])
1157
+ >>> d = json_loads(r.data)
1158
+ >>> print(d)
1159
+ {'code': 400, 'msg': "'moment' not accessible by role 'superuser'"}
1160
+
1161
+ >>> #apijson put, with a field DISALLOWed
1162
+ >>> data ='''{
1163
+ ... "comment": {
1164
+ ... "id": 2,
1165
+ ... "user_id": 2,
1166
+ ... "content": "content after change"
1167
+ ... },
1168
+ ... "@tag": "comment"
1169
+ ... }'''
1170
+ >>> r = handler.post('/apijson/put', data=data, pre_call=pre_call_as("usera"), middlewares=[])
1171
+ >>> d = json_loads(r.data)
1172
+ >>> print(d)
1173
+ {'code': 400, 'msg': "request 'comment' disallow 'user_id'"}
1174
+
1175
+
1176
+ >>> #apijson put, without a field in NECESSARY
1177
+ >>> data ='''{
1178
+ ... "moment": {
1179
+ ... "id": 1
1180
+ ... },
1181
+ ... "@tag": "moment"
1182
+ ... }'''
1183
+ >>> r = handler.post('/apijson/put', data=data, pre_call=pre_call_as("usera"), middlewares=[])
1184
+ >>> d = json_loads(r.data)
1185
+ >>> print(d)
1186
+ {'code': 400, 'msg': "request 'moment' have not necessary field 'content'"}
1187
+
1188
+ >>> #apijson put, with a non exist field
1189
+ >>> data ='''{
1190
+ ... "moment": {
1191
+ ... "id": 1,
1192
+ ... "content": "moment content after change",
1193
+ ... "noexist": "test"
1194
+ ... },
1195
+ ... "@tag": "moment"
1196
+ ... }'''
1197
+ >>> r = handler.post('/apijson/put', data=data, pre_call=pre_call_as("usera"), middlewares=[])
1198
+ >>> d = json_loads(r.data)
1199
+ >>> print(d)
1200
+ {'code': 400, 'msg': "'moment' don't have field 'noexist'"}
1201
+
1202
+ >>> #apijson put, and check get result
1203
+ >>> data ='''{
1204
+ ... "moment": {
1205
+ ... "id": 1,
1206
+ ... "content": "check 789"
1207
+ ... },
1208
+ ... "@tag": "moment"
1209
+ ... }'''
1210
+ >>> r = handler.post('/apijson/put', data=data, pre_call=pre_call_as("usera"), middlewares=[])
1211
+ >>> d = json_loads(r.data)
1212
+ >>> print(d)
1213
+ {'code': 200, 'msg': 'success', 'moment': {'id': 1, 'code': 200, 'msg': 'success', 'count': 1}}
1214
+ >>> data ='''{
1215
+ ... "moment":{
1216
+ ... "id": %s
1217
+ ... }
1218
+ ... }'''%(d['moment']['id'])
1219
+ >>> r = handler.post('/apijson/get', data=data, pre_call=pre_call_as("usera"), middlewares=[])
1220
+ >>> d = json_loads(r.data)
1221
+ >>> print(d)
1222
+ {'code': 200, 'msg': 'success', 'moment': {'user_id': 2, 'date': '2018-11-01 00:00:00', 'content': 'check 789', 'picture_list': '[]', 'id': 1}}
1223
+
1224
+ >>> #apijson put, and check get result
1225
+ >>> data ='''{
1226
+ ... "moment": {
1227
+ ... "id": 1,
1228
+ ... "content": "check 789"
1229
+ ... },
1230
+ ... "@tag": "moment"
1231
+ ... }'''
1232
+ >>> r = handler.post('/apijson/put', data=data, pre_call=pre_call_as("usera"), middlewares=[])
1233
+ >>> d = json_loads(r.data)
1234
+ >>> print(d)
1235
+ {'code': 400, 'msg': 'failed when updating, maybe no change', 'moment': {'id': 1, 'code': 400, 'msg': 'failed when updating, maybe no change', 'count': 0}}
1027
1236
"""
0 commit comments