Projet

Général

Profil

0001-add-current-formdata-variables-on-autosave-12347.patch

Thomas Noël, 28 juin 2016 14:53

Télécharger (2,53 ko)

Voir les différences:

Subject: [PATCH] add current formdata variables on autosave (#12347)

 tests/test_form_pages.py | 29 +++++++++++++++++++++++++++++
 wcs/forms/root.py        |  2 ++
 2 files changed, 31 insertions(+)
tests/test_form_pages.py
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',
wcs/forms/root.py
863 863
        if not session:
864 864
            return result_error('missing session')
865 865

  
866
        self.feed_current_data(magictoken)
867

  
866 868
        form_data = session.get_by_magictoken(magictoken, {})
867 869
        if not form_data:
868 870
            return result_error('missing data')
869
-