671 |
671 |
def test_lazy_map_variable(pub, variable_test_data):
|
672 |
672 |
formdef = FormDef.select()[0]
|
673 |
673 |
formdata = formdef.data_class().select()[0]
|
674 |
|
pub.substitutions.reset()
|
675 |
|
pub.substitutions.feed(formdef)
|
676 |
|
pub.substitutions.feed(formdata)
|
677 |
674 |
for mode in (None, 'lazy'):
|
678 |
|
assert WorkflowStatusItem.compute('=form_var_map') == '2;4'
|
679 |
|
assert WorkflowStatusItem.compute('=form_var_map.split(";")[0]') == '2'
|
|
675 |
pub.substitutions.reset()
|
|
676 |
pub.substitutions.feed(formdef)
|
|
677 |
with pub.substitutions.temporary_feed(formdata, force_mode=mode):
|
|
678 |
assert WorkflowStatusItem.compute('=form_var_map', raises=True) == '2;4'
|
|
679 |
assert WorkflowStatusItem.compute('{{ form_var_map }}', raises=True) == '2;4'
|
|
680 |
if mode is None:
|
|
681 |
assert WorkflowStatusItem.compute('=form_var_map.split(";")[0]', raises=True) == '2'
|
|
682 |
if mode == 'lazy':
|
|
683 |
assert WorkflowStatusItem.compute('=form_var_map_lat', raises=True) == 2
|
|
684 |
assert WorkflowStatusItem.compute('{{ form_var_map_lat }}', raises=True) == '2.0'
|
|
685 |
assert WorkflowStatusItem.compute('=form_var_map_lon', raises=True) == 4
|
|
686 |
assert WorkflowStatusItem.compute('{{ form_var_map_lon }}', raises=True) == '4.0'
|
680 |
687 |
|
681 |
688 |
formdata.data['7'] = None
|
682 |
689 |
formdata.store()
|
... | ... | |
684 |
691 |
pub.substitutions.feed(formdef)
|
685 |
692 |
pub.substitutions.feed(formdata)
|
686 |
693 |
for mode in (None, 'lazy'):
|
687 |
|
assert WorkflowStatusItem.compute('=form_var_map') is None
|
|
694 |
pub.substitutions.reset()
|
|
695 |
pub.substitutions.feed(formdef)
|
|
696 |
with pub.substitutions.temporary_feed(formdata, force_mode=mode):
|
|
697 |
assert WorkflowStatusItem.compute('=form_var_map', raises=True) is None
|
688 |
698 |
|
689 |
699 |
def test_lazy_conditions(pub, variable_test_data):
|
690 |
700 |
condition = Condition({'type': 'django', 'value': 'form_var_foo_foo == "bar"'})
|