2520 |
2520 |
assert json.loads(ajax_resp.body)['result'] == 'error'
|
2521 |
2521 |
assert formdef.data_class().select()[0].data['1'] == 'foobar3'
|
2522 |
2522 |
|
|
2523 |
def test_form_autosave_with_datasource(pub):
|
|
2524 |
formdef = create_formdef()
|
|
2525 |
formdef.fields = [fields.PageField(id='0', label='1st page', type='page'),
|
|
2526 |
fields.StringField(id='1', label='string', varname='foo'),
|
|
2527 |
fields.PageField(id='2', label='2nd page', type='page'),
|
|
2528 |
fields.ItemField(id='3', label='item', type='item',
|
|
2529 |
data_source = {'type': 'formula', 'value': '''[('1', form_var_foo*2)]'''})]
|
|
2530 |
formdef.enable_tracking_codes = True
|
|
2531 |
formdef.store()
|
|
2532 |
|
|
2533 |
formdef.data_class().wipe()
|
|
2534 |
app = get_app(pub)
|
|
2535 |
resp = app.get('/test/')
|
|
2536 |
resp.form['f1'] = 'bar'
|
|
2537 |
|
|
2538 |
app.post('/test/autosave', params=resp.form.submit_fields())
|
|
2539 |
assert formdef.data_class().count() == 1
|
|
2540 |
formdata = formdef.data_class().select()[0]
|
|
2541 |
assert formdata.status == 'draft'
|
|
2542 |
assert formdef.data_class().select()[0].data['1'] == 'bar'
|
|
2543 |
assert formdef.data_class().select()[0].data.get('3') == None
|
|
2544 |
|
|
2545 |
resp = resp.forms[0].submit('submit')
|
|
2546 |
app.post('/test/autosave', params=resp.form.submit_fields())
|
|
2547 |
assert formdef.data_class().count() == 1
|
|
2548 |
assert formdef.data_class().select()[0].data['1'] == 'bar'
|
|
2549 |
assert formdef.data_class().select()[0].data['3'] == '1'
|
|
2550 |
assert formdef.data_class().select()[0].data['3_display'] == 'barbar'
|
|
2551 |
|
2523 |
2552 |
def test_file_field_validation(pub, fargo_url):
|
2524 |
2553 |
document_type = {
|
2525 |
2554 |
'id': 'justificatif-de-domicile',
|