From 037cffd2bab7f274f8b6e0feb254044474b33b1a Mon Sep 17 00:00:00 2001 From: Benjamin Dauvergne Date: Fri, 20 Sep 2019 15:52:51 +0200 Subject: [PATCH] tests: check longer dependency chain in workflow form (#38852) --- 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 e52537fd..7e9e7f81 100644 --- a/tests/test_form_pages.py +++ b/tests/test_form_pages.py @@ -6471,6 +6471,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 @@ -6507,13 +6513,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 = [] @@ -6522,6 +6533,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