From e35d581a406e6efb1319ac077fe4938a8a6e3bd6 Mon Sep 17 00:00:00 2001 From: Thomas NOEL Date: Fri, 28 Oct 2016 12:07:07 +0200 Subject: [PATCH] workflows: allow None in file backoffice fields (#13783) --- tests/test_workflows.py | 18 +++++++++++++++--- wcs/wf/backoffice_fields.py | 2 +- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/tests/test_workflows.py b/tests/test_workflows.py index bfdc51a..e98ec22 100644 --- a/tests/test_workflows.py +++ b/tests/test_workflows.py @@ -1922,6 +1922,21 @@ def test_set_backoffice_field_file(pub): formdef.workflow_id = wf.id formdef.store() + item = SetBackofficeFieldsWorkflowStatusItem() + item.parent = st1 + item.fields = [{'field_id': 'bo1', 'value': '=locals().get("form_var_file_raw")'}] + + # the file does not exist + formdata = formdef.data_class()() + formdata.data = {} + formdata.just_created() + formdata.store() + pub.substitutions.feed(formdata) + item.perform(formdata) + formdata = formdef.data_class().get(formdata.id) + assert formdata.data['bo1'] == None + + # store a PiclableUpload upload = PicklableUpload('test.jpeg', 'image/jpeg') upload.receive([open(os.path.join(os.path.dirname(__file__), 'image-with-gps-data.jpeg')).read()]) @@ -1931,9 +1946,6 @@ def test_set_backoffice_field_file(pub): formdata.store() pub.substitutions.feed(formdata) - item = SetBackofficeFieldsWorkflowStatusItem() - item.parent = st1 - item.fields = [{'field_id': 'bo1', 'value': '=form_var_file_raw'}] item.perform(formdata) formdata = formdef.data_class().get(formdata.id) diff --git a/wcs/wf/backoffice_fields.py b/wcs/wf/backoffice_fields.py index 3276872..9585057 100644 --- a/wcs/wf/backoffice_fields.py +++ b/wcs/wf/backoffice_fields.py @@ -127,7 +127,7 @@ class SetBackofficeFieldsWorkflowStatusItem(WorkflowStatusItem): continue try: - if formdef_field.type == 'file': + if formdef_field.type == 'file' and new_value is not None: new_value = self.get_file_value(new_value) except ValueError: get_publisher().notify_of_exception(sys.exc_info()) -- 2.9.3