8 |
8 |
from wcs.workflows import Workflow, EditableWorkflowStatusItem
|
9 |
9 |
from wcs.wf.jump import JumpWorkflowStatusItem
|
10 |
10 |
from wcs.wf.attachment import AddAttachmentWorkflowStatusItem
|
|
11 |
from wcs.wf.form import FormWorkflowStatusItem, WorkflowFormFieldsFormDef
|
11 |
12 |
from wcs.categories import Category
|
12 |
13 |
from wcs.roles import Role, logged_users_role
|
13 |
14 |
from wcs.tracking_code import TrackingCode
|
... | ... | |
1037 |
1038 |
resp = resp.follow()
|
1038 |
1039 |
assert resp.content_type == 'text/plain'
|
1039 |
1040 |
assert resp.body == 'foobar'
|
|
1041 |
|
|
1042 |
|
|
1043 |
def test_formdata_form_file_download(pub):
|
|
1044 |
create_user(pub)
|
|
1045 |
wf = Workflow(name='status')
|
|
1046 |
st1 = wf.add_status('Status1', 'st1')
|
|
1047 |
|
|
1048 |
display_form = FormWorkflowStatusItem()
|
|
1049 |
display_form.id = '_x'
|
|
1050 |
display_form.by = ['_submitter']
|
|
1051 |
display_form.varname = 'xxx'
|
|
1052 |
display_form.formdef = WorkflowFormFieldsFormDef(item=display_form)
|
|
1053 |
display_form.formdef.fields.append(fields.FileField(id='1', label='File',
|
|
1054 |
type='file', varname='yyy'))
|
|
1055 |
st1.items.append(display_form)
|
|
1056 |
display_form.parent = st1
|
|
1057 |
|
|
1058 |
wf.store()
|
|
1059 |
|
|
1060 |
formdef = create_formdef()
|
|
1061 |
formdef.workflow_id = wf.id
|
|
1062 |
formdef.fields = []
|
|
1063 |
formdef.store()
|
|
1064 |
formdef.data_class().wipe()
|
|
1065 |
|
|
1066 |
resp = login(get_app(pub), username='foo', password='foo').get('/test/')
|
|
1067 |
resp = resp.forms[0].submit('submit')
|
|
1068 |
assert 'Check values then click submit.' in resp.body
|
|
1069 |
resp = resp.forms[0].submit('submit')
|
|
1070 |
assert resp.status_int == 302
|
|
1071 |
resp = resp.follow()
|
|
1072 |
assert 'The form has been recorded' in resp.body
|
|
1073 |
|
|
1074 |
resp.forms[0]['f1$file'] = Upload('test.txt', 'foobar', 'text/plain')
|
|
1075 |
resp = resp.forms[0].submit('submit')
|
|
1076 |
|
|
1077 |
assert formdef.data_class().count() == 1
|
|
1078 |
formdata = formdef.data_class().select()[0]
|
|
1079 |
assert 'xxx_var_yyy_raw' in formdata.workflow_data
|
|
1080 |
|
|
1081 |
resp = resp.test_app.get(resp.location + 'files/form-xxx-yyy/test.txt')
|
|
1082 |
assert resp.content_type == 'text/plain'
|
|
1083 |
assert resp.body == 'foobar'
|