From aa7b2044913e5ae41d3dd6b2f338654e63809c32 Mon Sep 17 00:00:00 2001 From: Benjamin Dauvergne Date: Fri, 20 Sep 2019 15:52:51 +0200 Subject: [PATCH 3/5] tests: check longer dependency chain in workflow form (#35903) --- tests/test_form_pages.py | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/tests/test_form_pages.py b/tests/test_form_pages.py index 958dc5df..c147b645 100644 --- a/tests/test_form_pages.py +++ b/tests/test_form_pages.py @@ -6325,6 +6325,12 @@ def test_field_live_select_content_on_workflow_form(pub, http_requests): 'type': 'json', 'value': '{% if xxx_var_bar2 %}http://remote.example.net/json-list?plop={{xxx_var_bar2}}{% endif %}' }), + fields.ItemField(type='item', id='4', label='Foo', + required=False, varname='foo2', + data_source={ + 'type': 'json', + 'value': '{% if xxx_var_foo %}http://remote.example.net/json-list?plop={{xxx_var_foo }}{% endif %}' + }), ] st1.items.append(display_form) display_form.parent = st1 @@ -6354,13 +6360,18 @@ def test_field_live_select_content_on_workflow_form(pub, http_requests): assert live_resp.json['result']['1']['visible'] assert live_resp.json['result']['2']['visible'] assert live_resp.json['result']['3']['visible'] + assert live_resp.json['result']['4']['visible'] assert not 'items' in live_resp.json['result']['3'] + assert not 'items' in live_resp.json['result']['4'] resp.form['f2'] = 'plop' + live_resp = app.post('/test/1/live?modified_field_id=2', params=resp.form.submit_fields()) assert live_resp.json['result']['1']['visible'] assert live_resp.json['result']['2']['visible'] assert live_resp.json['result']['3']['visible'] + assert live_resp.json['result']['4']['visible'] assert 'items' in live_resp.json['result']['3'] + assert not 'items' in live_resp.json['result']['4'] assert len(live_resp.json['result']['3']['items']) > 0 resp.form['f3'].options = [] @@ -6369,6 +6380,21 @@ def test_field_live_select_content_on_workflow_form(pub, http_requests): resp.form['f3'].options.append((item['id'], False, item['text'])) resp.form['f3'] = 'a' + live_resp = app.post('/test/1/live?modified_field_id=3', params=resp.form.submit_fields()) + assert live_resp.json['result']['1']['visible'] + assert live_resp.json['result']['2']['visible'] + assert live_resp.json['result']['3']['visible'] + assert live_resp.json['result']['4']['visible'] + assert not 'items' in live_resp.json['result']['3'] + assert 'items' in live_resp.json['result']['4'] + assert len(live_resp.json['result']['4']['items']) > 0 + + resp.form['f4'].options = [] + for item in live_resp.json['result']['4']['items']: + # simulate javascript filling the