0001-misc-add-.split-method-to-lazy-variables-60994.patch
tests/test_formdata.py | ||
---|---|---|
3430 | 3430 |
assert tmpl.render(context) == '' |
3431 | 3431 | |
3432 | 3432 | |
3433 |
def test_items_field_split(pub): |
|
3434 |
NamedDataSource.wipe() |
|
3435 |
data_source = NamedDataSource(name='foobar') |
|
3436 |
data_source.data_source = { |
|
3437 |
'type': 'formula', |
|
3438 |
'value': repr( |
|
3439 |
[ |
|
3440 |
{'id': '1', 'text': 'un'}, |
|
3441 |
{'id': '2', 'text': 'deux'}, |
|
3442 |
{'id': '3', 'text': 'trois'}, |
|
3443 |
{'id': '4', 'text': 'quatre'}, |
|
3444 |
] |
|
3445 |
), |
|
3446 |
} |
|
3447 |
data_source.store() |
|
3448 | ||
3449 |
FormDef.wipe() |
|
3450 |
formdef = FormDef() |
|
3451 |
formdef.name = 'foobar' |
|
3452 |
formdef.fields = [ |
|
3453 |
fields.ItemsField(id='1', label='items', items=['aa', 'ab', 'ac'], varname='itemsfield'), |
|
3454 |
fields.ItemsField(id='2', label='items2', varname='items2field', data_source={'type': 'foobar'}), |
|
3455 |
] |
|
3456 |
formdef.store() |
|
3457 | ||
3458 |
formdata = formdef.data_class()() |
|
3459 |
formdata.data = {} |
|
3460 |
formdef.fields[0].set_value(formdata.data, ['aa', 'ab']) |
|
3461 |
formdef.fields[1].set_value(formdata.data, ['1', '3']) |
|
3462 |
formdata.store() |
|
3463 | ||
3464 |
for mode in (None, 'lazy'): |
|
3465 |
pub.substitutions.reset() |
|
3466 |
pub.substitutions.feed(formdef) |
|
3467 |
with pub.substitutions.temporary_feed(formdata, force_mode=mode): |
|
3468 |
assert WorkflowStatusItem.compute('=form_var_itemsfield', raises=True) == 'aa, ab' |
|
3469 |
assert WorkflowStatusItem.compute('=form_var_itemsfield.split(",")[0]', raises=True) == 'aa' |
|
3470 | ||
3471 | ||
3433 | 3472 |
def test_attachment_part_path_migration(pub): |
3434 | 3473 |
FormDef.wipe() |
3435 | 3474 |
formdef = FormDef() |
wcs/variables.py | ||
---|---|---|
831 | 831 |
warnings.warn('Deprecated use of .strip method', DeprecationWarning) |
832 | 832 |
return self.get_value().strip(*args) |
833 | 833 | |
834 |
def split(self, *args, **kwargs): |
|
835 |
# Compatibility with usage of variable as a string. It is |
|
836 |
# recommended to use appropriate properties instead. |
|
837 |
return str(self).split(*args, **kwargs) |
|
838 | ||
834 | 839 |
def __getstate__(self): |
835 | 840 |
raise AssertionError('lazy cannot be pickled') |
836 | 841 | |
... | ... | |
1071 | 1076 | |
1072 | 1077 | |
1073 | 1078 |
class LazyFieldVarMap(LazyFieldVarStructured): |
1074 |
def split(self, *args, **kwargs): |
|
1075 |
# Compatibility with usage of map variable as a string. It is |
|
1076 |
# recommended to use lat/lon properties instead. |
|
1077 |
return self._data.get(self._field.id).split(*args, **kwargs) |
|
1078 | ||
1079 | 1079 |
def inspect_keys(self): |
1080 | 1080 |
return ['lat', 'lon'] if self.get_field_var_value() else [] |
1081 | 1081 | |
1082 |
- |