2311 |
2311 |
assert resp.forms[0]['f1'].value == 'foo2'
|
2312 |
2312 |
resp.forms[0]['f1'] = 'foo3'
|
2313 |
2313 |
resp = resp.forms[0].submit('submit')
|
|
2314 |
assert formdef.data_class().get(data_id).data['1'] == 'foo2' # check foo3 has not been overwritten in database
|
2314 |
2315 |
assert resp.forms[0]['f3'].value == 'barXYZ'
|
2315 |
2316 |
resp = resp.forms[0].submit('submit')
|
2316 |
2317 |
assert resp.location == 'http://example.net/test/%s/' % data_id
|
... | ... | |
9036 |
9037 |
'1_structured': {'id': '1', 'text': 'un', 'more': 'foo'},
|
9037 |
9038 |
}
|
9038 |
9039 |
assert '2020-04-18' in formdata.evolution[0].parts[0].content
|
|
9040 |
|
|
9041 |
|
|
9042 |
def test_exclude_self_condition(pub):
|
|
9043 |
FormDef.wipe()
|
|
9044 |
|
|
9045 |
formdef = FormDef()
|
|
9046 |
formdef.name = 'form title'
|
|
9047 |
formdef.fields = [
|
|
9048 |
fields.PageField(id='1', label='1st page', type='page',
|
|
9049 |
post_conditions=[{
|
|
9050 |
'condition': {
|
|
9051 |
'type': 'django', 'value': 'form_objects|filter_by:"foo"|filter_value:form_var_foo|exclude_self|count == 0',
|
|
9052 |
},
|
|
9053 |
'error_message': 'You shall not pass.'
|
|
9054 |
}]
|
|
9055 |
),
|
|
9056 |
fields.StringField(id='1', label='string', type='string', varname='foo'),
|
|
9057 |
]
|
|
9058 |
|
|
9059 |
workflow = Workflow(name='test')
|
|
9060 |
st1 = workflow.add_status('Status1', 'st1')
|
|
9061 |
editable = EditableWorkflowStatusItem()
|
|
9062 |
editable.id = '_editable'
|
|
9063 |
editable.by = ['_submitter', '_receiver']
|
|
9064 |
st1.items.append(editable)
|
|
9065 |
editable.parent = st1
|
|
9066 |
workflow.store()
|
|
9067 |
|
|
9068 |
formdef.workflow_id = workflow.id
|
|
9069 |
formdef.store()
|
|
9070 |
|
|
9071 |
app = get_app(pub)
|
|
9072 |
resp = app.get(formdef.get_url())
|
|
9073 |
resp.form['f1'] = 'test'
|
|
9074 |
resp = resp.form.submit('submit') # -> validation page
|
|
9075 |
assert 'You shall not pass.' not in resp.text
|
|
9076 |
resp = resp.form.submit('submit') # -> submit
|
|
9077 |
resp = resp.follow()
|
|
9078 |
|
|
9079 |
# edit is ok
|
|
9080 |
resp = resp.form.submit('button_editable').follow()
|
|
9081 |
resp = resp.form.submit('submit') # -> validation page
|
|
9082 |
assert 'You shall not pass.' not in resp
|
|
9083 |
|
|
9084 |
# 2nd submission
|
|
9085 |
resp = app.get(formdef.get_url())
|
|
9086 |
resp.form['f1'] = 'test'
|
|
9087 |
resp = resp.form.submit('submit') # -> validation page
|
|
9088 |
assert 'You shall not pass.' in resp.text
|
|
9089 |
|
|
9090 |
# submission with other value
|
|
9091 |
resp = app.get(formdef.get_url())
|
|
9092 |
resp.form['f1'] = 'other'
|
|
9093 |
resp = resp.form.submit('submit') # -> validation page
|
|
9094 |
assert 'You shall not pass.' not in resp.text
|
|
9095 |
resp = resp.form.submit('submit') # -> submit
|
|
9096 |
resp = resp.follow()
|
|
9097 |
|
|
9098 |
# edit is ok
|
|
9099 |
resp = resp.form.submit('button_editable').follow()
|
|
9100 |
resp.form['f1'] = 'test'
|
|
9101 |
resp = resp.form.submit('submit') # -> validation page
|
|
9102 |
assert 'You shall not pass.' in resp
|