0001-misc-do-not-crash-on-invalid-file-value-in-workflow-.patch
tests/admin_pages/test_form.py | ||
---|---|---|
870 | 870 |
assert resp.form['f2'].value == 'foobar' |
871 | 871 | |
872 | 872 | |
873 |
def test_form_workflow_invalid_file_variable(pub): |
|
874 |
create_superuser(pub) |
|
875 |
create_role(pub) |
|
876 | ||
877 |
FormDef.wipe() |
|
878 |
Workflow.wipe() |
|
879 | ||
880 |
workflow = Workflow(name='Workflow One') |
|
881 |
from wcs.workflows import WorkflowVariablesFieldsFormDef |
|
882 | ||
883 |
workflow.variables_formdef = WorkflowVariablesFieldsFormDef(workflow=workflow) |
|
884 |
workflow.variables_formdef.fields = [ |
|
885 |
fields.StringField(id='1', varname='test', label='Test', type='string') |
|
886 |
] |
|
887 |
workflow.store() |
|
888 | ||
889 |
formdef = FormDef() |
|
890 |
formdef.name = 'form title' |
|
891 |
formdef.fields = [] |
|
892 |
formdef.store() |
|
893 |
formdef.workflow_id = workflow.id |
|
894 |
formdef.store() |
|
895 | ||
896 |
app = login(get_app(pub)) |
|
897 |
resp = app.get('/backoffice/forms/1/workflow-variables') |
|
898 |
resp.forms[0]['f1'] = 'foobar' |
|
899 |
resp = resp.forms[0].submit() |
|
900 | ||
901 |
# check the value has been correctly saved |
|
902 |
assert FormDef.get(formdef.id).workflow_options == {'test': 'foobar'} |
|
903 | ||
904 |
# modify option type |
|
905 |
workflow.variables_formdef.fields = [fields.FileField(id='1', varname='test', label='Test', type='file')] |
|
906 |
workflow.store() |
|
907 | ||
908 |
# do not crash when getting back |
|
909 |
resp = app.get('/backoffice/forms/1/workflow-variables') |
|
910 | ||
911 | ||
873 | 912 |
def test_form_roles(pub): |
874 | 913 |
create_superuser(pub) |
875 | 914 |
role = create_role(pub) |
wcs/qommon/form.py | ||
---|---|---|
771 | 771 |
) |
772 | 772 |
self.get_widget('token').set_value(self.value.token) |
773 | 773 |
except Exception as e: |
774 |
get_publisher().record_error( |
|
775 |
_('Failed to set value on field "%s"') % self.field.label, |
|
776 |
formdef=getattr(self, 'formdef', None), |
|
777 |
exception=e, |
|
778 |
) |
|
774 |
if getattr(self, 'field', None): |
|
775 |
get_publisher().record_error( |
|
776 |
_('Failed to set value on field "%s"') % self.field.label, |
|
777 |
formdef=getattr(self, 'formdef', None), |
|
778 |
exception=e, |
|
779 |
) |
|
779 | 780 |
self.value = None |
780 | 781 | |
781 | 782 |
def add_media(self): |
782 |
- |