tests: make sure all advertised keys are ok for users sourced items (#67955)
This commit is contained in:
parent
c83a06990c
commit
d4b115cbe5
|
@ -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()
|
||||
|
|
Loading…
Reference in New Issue