misc: don't create subvariables for strings (#53641)
This commit is contained in:
parent
4b802af856
commit
49d871a6b6
|
@ -5,6 +5,7 @@ from django.utils.timezone import make_aware
|
|||
|
||||
from wcs import fields
|
||||
from wcs.formdef import FormDef
|
||||
from wcs.qommon.substitution import CompatibilityNamesDict
|
||||
from wcs.wscalls import NamedWsCall
|
||||
|
||||
from ..utilities import clean_temporary_pub, create_temporary_pub, get_app, login
|
||||
|
@ -353,3 +354,28 @@ def test_computed_field_usage_in_live_data(pub, http_requests):
|
|||
resp.form['f0'] = 'hello'
|
||||
live_resp = app.post('/test/live', params=resp.form.submit_fields())
|
||||
assert live_resp.json['result']['2']['content'] == '<p>XxxxYhelloZ</p>'
|
||||
|
||||
|
||||
def test_computed_field_inspect_keys(pub):
|
||||
create_user(pub)
|
||||
|
||||
FormDef.wipe()
|
||||
formdef = FormDef()
|
||||
formdef.name = 'test'
|
||||
formdef.fields = [
|
||||
fields.ComputedField(id='1', label='computed', varname='computed', value_template='{{ "xxx" }}'),
|
||||
]
|
||||
formdef.store()
|
||||
formdef.data_class().wipe()
|
||||
|
||||
formdata = formdef.data_class()()
|
||||
formdata.data = {'1': 'xxx'}
|
||||
|
||||
substvars = CompatibilityNamesDict()
|
||||
substvars.update(formdata.get_substitution_variables())
|
||||
assert 'form_var_computed' in substvars.get_flat_keys()
|
||||
assert substvars['form_var_computed'] == 'xxx'
|
||||
|
||||
formdata.data = {'1': {'foo': 'bar'}}
|
||||
assert 'form_var_computed_foo' in substvars.get_flat_keys()
|
||||
assert substvars['form_var_computed_foo'] == 'bar'
|
||||
|
|
|
@ -800,7 +800,7 @@ class LazyFieldVarComplex(LazyFieldVar):
|
|||
if isinstance(structured_value, list):
|
||||
for i, value in enumerate(structured_value):
|
||||
walk(str(i), value)
|
||||
else:
|
||||
elif isinstance(structured_value, dict):
|
||||
walk('', structured_value)
|
||||
|
||||
return keys
|
||||
|
|
Loading…
Reference in New Issue