Projet

Général

Profil

0001-wip.patch

Lauréline Guérin, 13 février 2022 22:44

Télécharger (2,64 ko)

Voir les différences:

Subject: [PATCH] wip

 tests/form_pages/test_computed_field.py | 58 +++++++++++++++++++++++++
 1 file changed, 58 insertions(+)
tests/form_pages/test_computed_field.py
767 767
        logged_error = pub.loggederror_class.select(order_by='id')[1]
768 768
        assert logged_error.summary == 'Invalid value "True" for field "computed"'
769 769
        assert logged_error.formdef_id == formdef.id
770

  
771

  
772
def test_computed_field_field_position(pub):
773
    FormDef.wipe()
774

  
775
    formdef = FormDef()
776
    formdef.name = 'test'
777
    formdef.fields = [
778
        fields.PageField(id='0', label='1st page', type='page'),
779
        fields.StringField(
780
            id='1',
781
            label='string1',
782
            varname='string1',
783
            condition={'type': 'django', 'value': 'not form_var_bool'},
784
            required=False,
785
        ),
786
        fields.StringField(
787
            id='2',
788
            label='string2',
789
            varname='string2',
790
            condition={'type': 'django', 'value': 'form_var_bool'},
791
            required=False,
792
        ),
793
        # bool field after string fields
794
        fields.BoolField(id='3', label='bool', varname='bool'),
795
        fields.ComputedField(
796
            id='4',
797
            label='computed',
798
            varname='computed',
799
            value_template='{% if form_var_bool %}X{{ form_var_string2 }}{% else %}Y{{ form_var_string1 }}{% endif%}',
800
        ),
801
        fields.PageField(id='5', label='2nd page', type='page'),
802
        fields.CommentField(id='6', label='{{ form_var_computed }}', type='comment'),
803
    ]
804
    formdef.store()
805
    formdef.data_class().wipe()
806

  
807
    app = get_app(pub)
808

  
809
    resp = app.get('/test/')
810
    resp = resp.forms[0].submit('submit')  # -> 2nd page
811
    assert 'YNone' in resp.text
812

  
813
    resp = app.get('/test/')
814
    resp.form['f1'] = 'foo1'
815
    resp = resp.forms[0].submit('submit')  # -> 2nd page
816
    assert 'Yfoo1' in resp.text
817

  
818
    resp = app.get('/test/')
819
    resp.form['f3'] = True
820
    resp = resp.forms[0].submit('submit')  # -> 2nd page
821
    assert 'XNone' in resp.text
822

  
823
    resp = app.get('/test/')
824
    resp.form['f2'] = 'foo2'
825
    resp.form['f3'] = True
826
    resp = resp.forms[0].submit('submit')  # -> 2nd page
827
    assert 'Xfoo2' in resp.text
770
-