0001-misc-raise-AttributeError-on-missing-lazy-attributes.patch
tests/test_formdata.py | ||
---|---|---|
1691 | 1691 |
assert condition.evaluate() is False |
1692 | 1692 | |
1693 | 1693 | |
1694 |
def test_lazy_url_suffix(pub, variable_test_data): |
|
1695 |
ds = { |
|
1696 |
'type': 'formula', |
|
1697 |
'value': repr([ |
|
1698 |
{'id': '1', 'text': 'un', 'more': 'foo', 'url': 'xxx'}, |
|
1699 |
{'id': '2', 'text': 'deux', 'more': 'bar', 'url': 'yyy'}]), |
|
1700 |
} |
|
1701 | ||
1702 |
formdef = FormDef() |
|
1703 |
formdef.name = 'foobar' |
|
1704 |
formdef.url_name = 'foobar' |
|
1705 |
formdef.fields = [ |
|
1706 |
fields.ItemField(id='1', label='item', data_source=ds, varname='plop'), |
|
1707 |
] |
|
1708 |
formdef.store() |
|
1709 | ||
1710 |
formdata = formdef.data_class()() |
|
1711 |
formdata.data = {'1': '1'} |
|
1712 |
formdata.data['1_display'] = formdef.fields[0].store_display_value(formdata.data, '1') |
|
1713 |
formdata.data['1_structured'] = formdef.fields[0].store_structured_value(formdata.data, '1') |
|
1714 |
formdata.store() |
|
1715 | ||
1716 |
pub.substitutions.reset() |
|
1717 |
pub.substitutions.feed(formdata) |
|
1718 |
for mode in (None, 'lazy'): |
|
1719 |
context = pub.substitutions.get_context_variables(mode=mode) |
|
1720 |
tmpl = Template('{{ form_var_plop_more }}') |
|
1721 |
assert tmpl.render(context) == 'foo' |
|
1722 |
tmpl = Template('{{ form_var_plop_url }}') |
|
1723 |
assert tmpl.render(context) == 'xxx' |
|
1724 | ||
1725 | ||
1694 | 1726 |
def test_formdata_user_field(pub, variable_test_data): |
1695 | 1727 |
local_user = variable_test_data._formdata.user |
1696 | 1728 |
wcs/variables.py | ||
---|---|---|
508 | 508 |
def raw(self): |
509 | 509 |
if self._field.store_display_value or self._field.key in ('file', 'date'): |
510 | 510 |
return self._data.get(self._field.id) |
511 |
raise KeyError('raw')
|
|
511 |
raise AttributeError('raw')
|
|
512 | 512 | |
513 | 513 |
@property |
514 | 514 |
def url(self): |
515 | 515 |
if self._field.key != 'file' or not self._formdata: |
516 |
raise KeyError('url')
|
|
516 |
raise AttributeError('url')
|
|
517 | 517 |
return '%sdownload?f=%s' % (self._formdata.get_url(), self._field.id) |
518 | 518 | |
519 | 519 |
def get_value(self): |
520 |
- |