From d4b115cbe55b423f53fb7b7e4f100a7a7c30729e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20P=C3=A9ters?= Date: Wed, 3 Aug 2022 13:52:30 +0200 Subject: [PATCH] tests: make sure all advertised keys are ok for users sourced items (#67955) --- tests/test_formdata.py | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/tests/test_formdata.py b/tests/test_formdata.py index 0aaf1aed2..37360038e 100644 --- a/tests/test_formdata.py +++ b/tests/test_formdata.py @@ -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()