tests: add test for autosave/items field (#36893)

This commit is contained in:
Frédéric Péters 2019-10-14 11:54:53 +02:00
parent bd44241b93
commit f028c69cc5
1 changed files with 31 additions and 0 deletions

View File

@ -4425,6 +4425,37 @@ def test_form_autosave(pub):
assert json.loads(ajax_resp.body)['result'] == 'error'
assert formdef.data_class().select()[0].data['1'] == 'foobar3'
def test_form_autosave_with_items_field(pub):
formdef = create_formdef()
formdef.data_class().wipe()
formdef.fields = [fields.PageField(id='0', label='1st page', type='page'),
fields.StringField(id='1', label='string', varname='foo'),
fields.PageField(id='2', label='2nd page', type='page'),
fields.ItemsField(id='3', label='items', type='items',
items=[x.encode(pub.site_charset) for x in (u'pomme', u'poire', u'pêche', u'abricot')]),
]
formdef.enable_tracking_codes = True
formdef.store()
app = get_app(pub)
resp = app.get('/test/')
resp.form['f1'] = 'bar'
app.post('/test/autosave', params=resp.form.submit_fields())
assert formdef.data_class().count() == 1
formdata = formdef.data_class().select()[0]
assert formdata.status == 'draft'
assert formdef.data_class().select()[0].data['1'] == 'bar'
assert formdef.data_class().select()[0].data.get('3') == None
resp = resp.forms[0].submit('submit')
resp.form['f3$element1'].checked = True
resp.form['f3$element3'].checked = True
app.post('/test/autosave', params=resp.form.submit_fields())
assert formdef.data_class().count() == 1
assert formdef.data_class().select()[0].data['1'] == 'bar'
assert formdef.data_class().select()[0].data['3'] == ['poire', 'abricot']
def test_form_autosave_with_parameterized_datasource(pub):
formdef = create_formdef()
formdef.fields = [fields.PageField(id='0', label='1st page', type='page'),