testdef: use field.set_value in test run (#73444)
This commit is contained in:
parent
8bfc31bc00
commit
8a1c049dff
|
@ -1,4 +1,5 @@
|
|||
import datetime
|
||||
import json
|
||||
import time
|
||||
|
||||
import pytest
|
||||
|
@ -270,6 +271,63 @@ 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_item_field_structured_value(pub):
|
||||
data_source = {
|
||||
'type': 'jsonvalue',
|
||||
'value': json.dumps(
|
||||
[{'id': '1', 'text': 'un', 'more': 'foo'}, {'id': '2', 'text': 'deux', 'more': 'bar'}]
|
||||
),
|
||||
}
|
||||
|
||||
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_more == "bar"'}, 'error_message': ''}
|
||||
],
|
||||
),
|
||||
fields.ItemField(id='1', label='Test', type='item', varname='item', data_source=data_source),
|
||||
]
|
||||
formdef.store()
|
||||
|
||||
formdata = formdef.data_class()()
|
||||
formdata.just_created()
|
||||
formdata.receipt_time = datetime.datetime(2021, 1, 1, 0, 0).timetuple()
|
||||
formdata.data['1'] = '2'
|
||||
|
||||
testdef = TestDef.create_from_formdata(formdef, formdata)
|
||||
testdef.run(formdef)
|
||||
|
||||
|
||||
def test_validation_items_field(pub):
|
||||
formdef = FormDef()
|
||||
formdef.name = 'test title'
|
||||
|
|
|
@ -185,7 +185,7 @@ class TestDef(sql.TestDef):
|
|||
value = self.data['fields'].get(field.id)
|
||||
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()
|
||||
|
||||
|
|
Loading…
Reference in New Issue