1675 |
1675 |
|
1676 |
1676 |
formdata = formdef.data_class().get(formdata.id)
|
1677 |
1677 |
assert formdata.data['bo1'] == 'HELLO'
|
|
1678 |
|
|
1679 |
def test_set_backoffice_field_file(pub):
|
|
1680 |
Workflow.wipe()
|
|
1681 |
wf = Workflow(name='xxx')
|
|
1682 |
wf.backoffice_fields_formdef = WorkflowBackofficeFieldsFormDef(wf)
|
|
1683 |
wf.backoffice_fields_formdef.fields = [
|
|
1684 |
FileField(id='bo1', label='1st backoffice field',
|
|
1685 |
type='file', varname='backoffice_file'),
|
|
1686 |
]
|
|
1687 |
st1 = wf.add_status('Status1')
|
|
1688 |
wf.store()
|
|
1689 |
|
|
1690 |
formdef = FormDef()
|
|
1691 |
formdef.name = 'baz'
|
|
1692 |
formdef.fields = [
|
|
1693 |
StringField(id='1', label='File', type='file', varname='file'),
|
|
1694 |
]
|
|
1695 |
formdef.workflow_id = wf.id
|
|
1696 |
formdef.store()
|
|
1697 |
|
|
1698 |
upload = PicklableUpload('test.jpeg', 'image/jpeg')
|
|
1699 |
upload.receive([open(os.path.join(os.path.dirname(__file__), 'image-with-gps-data.jpeg')).read()])
|
|
1700 |
|
|
1701 |
formdata = formdef.data_class()()
|
|
1702 |
formdata.data = {'1': upload}
|
|
1703 |
formdata.just_created()
|
|
1704 |
formdata.store()
|
|
1705 |
|
|
1706 |
pub.substitutions.feed(formdata)
|
|
1707 |
item = SetBackofficeFieldsWorkflowStatusItem()
|
|
1708 |
item.fields = [{'field_id': 'bo1', 'value': '=form_var_file_raw'}]
|
|
1709 |
item.perform(formdata)
|
|
1710 |
|
|
1711 |
formdata = formdef.data_class().get(formdata.id)
|
|
1712 |
assert formdata.data['bo1'].base_filename == 'test.jpeg'
|
|
1713 |
|
|
1714 |
# check storing response as attachment
|
|
1715 |
pub.substitutions.feed(formdata)
|
|
1716 |
item = WebserviceCallStatusItem()
|
|
1717 |
item.url = 'http://remote.example.net/xml'
|
|
1718 |
item.post = False
|
|
1719 |
item.varname = 'xxx'
|
|
1720 |
item.response_type = 'attachment'
|
|
1721 |
item.record_errors = True
|
|
1722 |
item.perform(formdata)
|
|
1723 |
attachment = formdata.evolution[-1].parts[-1]
|
|
1724 |
assert isinstance(attachment, AttachmentEvolutionPart)
|
|
1725 |
assert attachment.base_filename == 'xxx.xml'
|
|
1726 |
assert attachment.content_type == 'text/xml'
|
|
1727 |
|
|
1728 |
formdata = formdef.data_class().get(formdata.id)
|
|
1729 |
pub.substitutions.feed(formdata)
|
|
1730 |
item = SetBackofficeFieldsWorkflowStatusItem()
|
|
1731 |
item.fields = [{'field_id': 'bo1', 'value': '=attachments.xxx'}]
|
|
1732 |
item.perform(formdata)
|
|
1733 |
|
|
1734 |
formdata = formdef.data_class().get(formdata.id)
|
|
1735 |
assert formdata.data['bo1'].base_filename == 'xxx.xml'
|