Changeset 0dedfbe in OpenWorkouts-current for ow/tests/views/test_workout.py
- Timestamp:
- Apr 22, 2019, 10:47:55 PM (5 years ago)
- Branches:
- current
- Children:
- a6fa857
- Parents:
- 42baca4
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
ow/tests/views/test_workout.py
r42baca4 r0dedfbe 182 182 assert len(response['form'].form.errors) == 0 183 183 assert isinstance(response['form'].form.schema, UploadedWorkoutSchema) 184 assert response['duplicate'] is None 184 185 185 186 def test_add_workout_post_invalid(self, dummy_request): … … 196 197 # Only one required field in this case, the tracking file 197 198 assert len(response['form'].form.errors) == 1 199 assert response['duplicate'] is None 198 200 199 201 def test_add_workout_post_invalid_bytes(self, dummy_request): … … 214 216 # Only one required field in this case, the tracking file 215 217 assert len(response['form'].form.errors) == 1 218 assert response['duplicate'] is None 216 219 217 220 @pytest.mark.parametrize('filename', gpx_filenames) … … 234 237 assert response.location.endswith('/2/') 235 238 assert len(request.root['john'].workouts()) == 2 239 self.close_uploaded_file(uploaded_file) 240 241 def test_add_workout_post_duplicate(self, dummy_request): 242 """ 243 POST request, first add a workout uploading one of the sample 244 tracking files, then try to upload it again. 245 """ 246 # first, upload the workout 247 filename = self.gpx_filenames[0] 248 request = dummy_request 249 uploaded_file = self.open_uploaded_file(filename) 250 filestorage = self.create_filestorage(uploaded_file) 251 user = request.root['john'] 252 request.method = 'POST' 253 request.POST = MultiDict({ 254 'tracking_file': filestorage, 255 'submit': True, 256 }) 257 assert len(request.root['john'].workouts()) == 1 258 response = workout_views.add_workout(user, request) 259 assert isinstance(response, HTTPFound) 260 assert response.location.endswith('/2/') 261 assert len(request.root['john'].workouts()) == 2 262 self.close_uploaded_file(uploaded_file) 263 # now, try to upload it again 264 uploaded_file = self.open_uploaded_file(filename) 265 filestorage = self.create_filestorage(uploaded_file) 266 user = request.root['john'] 267 request.method = 'POST' 268 request.POST = MultiDict({ 269 'tracking_file': filestorage, 270 'submit': True, 271 }) 272 response = workout_views.add_workout(user, request) 273 assert response['duplicate'] == request.root['john']['2'] 274 assert len(request.root['john'].workouts()) == 2 275 self.close_uploaded_file(uploaded_file) 276 # finally, override the duplicate prevention code and save it 277 uploaded_file = self.open_uploaded_file(filename) 278 filestorage = self.create_filestorage(uploaded_file) 279 user = request.root['john'] 280 request.method = 'POST' 281 request.POST = MultiDict({ 282 'tracking_file': filestorage, 283 'allow_duplicates': 'on', 284 'submit': True, 285 }) 286 response = workout_views.add_workout(user, request) 287 assert isinstance(response, HTTPFound) 288 assert response.location.endswith('/3/') 289 assert len(request.root['john'].workouts()) == 3 236 290 self.close_uploaded_file(uploaded_file) 237 291
Note: See TracChangeset
for help on using the changeset viewer.