From 6dd866cd502b3bf138a8b3342cf88e3f2beb56d7 Mon Sep 17 00:00:00 2001 From: Benjamin Dauvergne Date: Wed, 13 Feb 2019 18:37:14 +0100 Subject: [PATCH 1/2] tests: non regression test (#30629) --- tests/test_form_pages.py | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/tests/test_form_pages.py b/tests/test_form_pages.py index 9d1c9a20..88efd8e0 100644 --- a/tests/test_form_pages.py +++ b/tests/test_form_pages.py @@ -5744,3 +5744,32 @@ def test_field_live_select_content(pub, http_requests): assert formdata.data['2'] == 'plop' assert formdata.data['3'] == 'a' assert formdata.data['3_display'] == 'b' + + +def test_field_live_condition_unknown_page_id(pub): + FormDef.wipe() + formdef = FormDef() + formdef.name = 'Foo' + formdef.fields = [ + fields.PageField(id='0', label='2nd page', type='page'), + fields.StringField(type='string', id='1', label='Bar', size='40', + required=True, varname='bar'), + fields.StringField(type='string', id='2', label='Foo', size='40', + required=True, varname='foo', + condition={'type': 'django', 'value': 'form_var_bar == "bye"'}), + fields.PageField(id='3', label='1st page', type='page'), + fields.StringField(type='string', id='4', label='Baz', size='40', + required=True, varname='baz'), + ] + formdef.store() + + app = get_app(pub) + resp = app.get('/foo/') + assert 'f1' in resp.form.fields + assert 'f2' in resp.form.fields + assert resp.html.find('div', {'data-field-id': '1'}).attrs['data-live-source'] == 'true' + assert resp.html.find('div', {'data-field-id': '2'}).attrs.get('style') == 'display: none' + resp.form['f1'] = 'hello' + params = resp.form.submit_fields() + params = [(key, value if key != 'page_id' else 'eiuiu') for key, value in params] + app.post('/foo/live', params=params) -- 2.20.1