From dde1cc3c499ddc8a4fc207ca996da090a5773962 Mon Sep 17 00:00:00 2001 From: Valentin Deniaud Date: Thu, 12 Jan 2023 18:00:49 +0100 Subject: [PATCH] testdef: use field.set_value in test run (#73444) --- tests/test_testdef.py | 25 +++++++++++++++++++++++++ wcs/testdef.py | 2 +- 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/tests/test_testdef.py b/tests/test_testdef.py index 2fcece330..b898357d5 100644 --- a/tests/test_testdef.py +++ b/tests/test_testdef.py @@ -269,6 +269,31 @@ def test_validation_item_field(pub): assert str(excinfo.value) == 'Invalid value "xxx" for field "Test": invalid value selected.' +def test_item_field_display_value(pub): + formdef = FormDef() + formdef.name = 'test title' + formdef.fields = [ + fields.PageField( + id='0', + label='1st page', + type='page', + post_conditions=[ + {'condition': {'type': 'django', 'value': 'form_var_item == "foo"'}, 'error_message': ''} + ], + ), + fields.ItemField(id='1', label='Test', type='item', items=['foo', 'bar', 'baz'], varname='item'), + ] + formdef.store() + + formdata = formdef.data_class()() + formdata.just_created() + formdata.receipt_time = datetime.datetime(2021, 1, 1, 0, 0).timetuple() + formdata.data['1'] = 'foo' + + testdef = TestDef.create_from_formdata(formdef, formdata) + testdef.run(formdef) + + def test_validation_items_field(pub): formdef = FormDef() formdef.name = 'test title' diff --git a/wcs/testdef.py b/wcs/testdef.py index 87d8e7839..79eed30fa 100644 --- a/wcs/testdef.py +++ b/wcs/testdef.py @@ -194,7 +194,7 @@ class TestDef(sql.TestDef): value = field.from_json_value(value) self.run_widget_validation(field, value) - formdata.data[field.id] = value + field.set_value(formdata.data, value) get_publisher().substitutions.invalidate_cache() for field in computed_fields: -- 2.39.0