def test__update_task__upload_FileField(client, faker, loggedin_user, mock_email): s, f = faker.get_test_field_of_type(FieldType.get_file()) field_data = {} files = [] fake_file = faker.fake_file() field_data[f.field_name] = fake_file.file_tuple() task = faker.get_test_task(service=s, requestor=loggedin_user) orig1 = faker.fake_file() faker.get_test_task_file(task=task, field=f, fake_file=orig1, filename=orig1.filename) files.append({'field': f, 'file': orig1}) files.append({ 'field': f, 'file': fake_file, }) resp = _edit_task_post(client, task, field_data) assert_emails_sent(mock_email, context='updated', user=loggedin_user) assert__redirect(resp, endpoint='ui.index') assert__task(task, loggedin_user, files=files)
def test__upload__upload_FileField(client, faker, required, allowed_file_extensions, file_sent, extension, should_be_loaded): user = login(client, faker) study = faker.get_test_study(collaborator=user) field = faker.get_test_field(field_group=study.field_group, field_type=FieldType.get_file(), allowed_file_extensions=allowed_file_extensions, required=required) content = faker.text() filename = faker.file_name(extension=extension) resp = _do_upload( client, faker, study.id, field_name=field.field_name, field_value=( BytesIO(content.encode('utf-8')), filename ), ) if should_be_loaded: assert__redirect(resp, endpoint='ui.index') _assert_uploaded_file(study, field, filename=filename, content=content) else: assert resp.status_code == status.HTTP_200_OK assert__error__message(resp.soup, field.field_name) _assert_upload_not_saved(study)
def test__upload__upload_FileField__no_file(client, faker, loggedin_user, mock_email): s, f = faker.get_test_field_of_type(FieldType.get_file()) expected = faker.task_details(service=s) resp = _create_task_post(client, expected) assert_emails_sent(mock_email, context='created', user=loggedin_user) assert__redirect(resp, endpoint='ui.index') assert__task(expected, loggedin_user)
def test__add_field__allowed_file_extensions_set(client, faker): field = faker.get_test_field(field_type=FieldType.get_file()) field.allowed_file_extensions = 'pdf|txt' field_actual = build_form(field) validators = [ v for v in field_actual.validators if isinstance(v, FileAllowed) ] assert len(validators) == 1 assert validators[0].upload_set == ['pdf', 'txt']
def get_test_upload_file(self, **kwargs): upload = self.get_test_upload(**kwargs) file_field = self.generator.field_details(FieldType.get_file()) file_field.study = upload.study file_field.order = 1 upload_file = self.upload_file_details() upload_file.upload = upload upload_file.field = file_field db.session.add(file_field) db.session.add(upload_file) db.session.commit() return upload_file
def test__upload__upload_FileField(client, faker, loggedin_user, mock_email): s, f = faker.get_test_field_of_type(FieldType.get_file()) field_data = {} fake_file = faker.fake_file() field_data[f.field_name] = fake_file.file_tuple() files = [{ 'field': f, 'file': fake_file, }] expected = faker.task_details(service=s) resp = _create_task_post(client, expected, field_data) assert_emails_sent(mock_email, context='created', user=loggedin_user) assert__redirect(resp, endpoint='ui.index') assert__task(expected, loggedin_user, files=files)