tests: make sure all advertised keys are ok for users sourced items (#67955)

This commit is contained in:
Frédéric Péters 2022-08-03 13:52:30 +02:00
parent c83a06990c
commit d4b115cbe5
1 changed files with 40 additions and 0 deletions

View File

@ -1046,6 +1046,46 @@ def test_lazy_formdata_live_user_item(pub, local_user):
assert 'form_var_foo_live_email' in context.get_flat_keys()
def test_lazy_formdata_user_items(pub, local_user):
NamedDataSource.wipe()
datasource = NamedDataSource(name='foo')
datasource.data_source = {'type': 'wcs:users'}
datasource.store()
user2 = get_publisher().user_class()
user2.name = 'Second User'
user2.email = 'second.user@example.com'
user2.store()
formdef = FormDef()
formdef.name = 'foobar'
formdef.fields = [
fields.ItemsField(
id='0',
label='users',
type='items',
varname='foo',
data_source={'type': 'foo'},
)
]
formdef.store()
formdata = formdef.data_class()()
formdata.data = {
'0': [str(local_user.id), str(user2.id)],
}
formdata.data['0_display'] = formdef.fields[0].store_display_value(formdata.data, '0')
formdata.data['0_structured'] = formdef.fields[0].store_structured_value(formdata.data, '0')
assert formdata.data['0_display'] == 'Jean Darmette, Second User'
pub.substitutions.feed(pub)
pub.substitutions.feed(formdef)
pub.substitutions.feed(formdata)
context = pub.substitutions.get_context_variables(mode='lazy')
assert [context[k] for k in context.get_flat_keys()]
def test_lazy_formdata_queryset(pub, variable_test_data):
lazy_formdata = variable_test_data
data_class = lazy_formdata._formdef.data_class()