def test_empty_survey(self): survey = Survey.objects.create(name="not to be used") data_file={'file': SimpleUploadedFile(self.filename, open(self.filename, 'rb').close())} upload_location_form = UploadWeightsForm({'survey':''}, data_file) self.assertEqual(False, upload_location_form.is_valid()) self.assertIn('This field is required.', upload_location_form.errors['survey'])
def test_invalid_survey(self): Survey.objects.create(name="not to be used") data_file = {'file': SimpleUploadedFile(self.filename, open(self.filename, 'rb').close())} invalid_survey_id ='1121' upload_location_form = UploadWeightsForm({'survey': invalid_survey_id}, data_file) self.assertEqual(False, upload_location_form.is_valid()) self.assertIn('Select a valid choice. That choice is not one of the available choices.', upload_location_form.errors['survey'])
def upload(request): upload_form = UploadWeightsForm() if request.method == 'POST': upload_form = UploadWeightsForm(request.POST, request.FILES) if upload_form.is_valid(): upload_task.delay(upload_form) messages.warning(request, "Upload in progress. This could take a while.") return HttpResponseRedirect('/locations/weights/upload/') context = {'button_label': 'Upload', 'id': 'upload-location-weights-form', 'upload_form': upload_form, 'location_types': LocationType.objects.all(), 'range': range(3)} return render(request, 'locations/weights/upload.html', context)
def test_should_call_upload_on_upload_form(self, mock_upload): mock_upload.return_value = (True, 'some message') upload_form = UploadWeightsForm() task_result = upload_task.delay(upload_form) status, message = task_result.get() self.assertTrue(status) self.assertEqual('some message', message) self.assertTrue(task_result.successful())
def test_should_know_fields(self): upload_location_form = UploadWeightsForm() fields = ['file', 'survey'] [self.assertIn(field, upload_location_form.fields) for field in fields]