tests: add test for autosave/items field (#36893)
This commit is contained in:
parent
bd44241b93
commit
f028c69cc5
|
@ -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'),
|
||||
|
|
Loading…
Reference in New Issue