tests: add block and item used in digest test
This commit is contained in:
parent
efbadb06b5
commit
ea5a61cf53
|
@ -8692,3 +8692,74 @@ def test_block_digest(pub, blocks_feature):
|
||||||
assert formdef.data_class().select()[0].data['1']['data'] == [
|
assert formdef.data_class().select()[0].data['1']['data'] == [
|
||||||
{'123': 'foo', '234': 'bar'}, {'123': 'foo2', '234': 'bar2'}]
|
{'123': 'foo', '234': 'bar'}, {'123': 'foo2', '234': 'bar2'}]
|
||||||
assert formdef.data_class().select()[0].data['1_display'] == 'XfooY, Xfoo2Y'
|
assert formdef.data_class().select()[0].data['1_display'] == 'XfooY, Xfoo2Y'
|
||||||
|
|
||||||
|
|
||||||
|
def test_block_digest_item(pub, blocks_feature):
|
||||||
|
create_user(pub)
|
||||||
|
FormDef.wipe()
|
||||||
|
BlockDef.wipe()
|
||||||
|
NamedDataSource.wipe()
|
||||||
|
|
||||||
|
# add a named data source
|
||||||
|
data_source = NamedDataSource(name='foobar')
|
||||||
|
data_source.data_source = {
|
||||||
|
'type': 'formula',
|
||||||
|
'value': repr([{'id': '1', 'text': 'un'},
|
||||||
|
{'id': '2', 'text': 'deux'}])}
|
||||||
|
data_source.store()
|
||||||
|
|
||||||
|
block = BlockDef()
|
||||||
|
block.name = 'foobar'
|
||||||
|
block.fields = [
|
||||||
|
fields.StringField(id='123', required=True, label='Test',
|
||||||
|
type='string', varname='foo'),
|
||||||
|
fields.ItemField(id='234', required=True, label='Test2',
|
||||||
|
type='item', varname='bar', data_source={'type': 'foobar'}),
|
||||||
|
]
|
||||||
|
block.store()
|
||||||
|
|
||||||
|
formdef = FormDef()
|
||||||
|
formdef.name = 'form title'
|
||||||
|
formdef.fields = [
|
||||||
|
fields.BlockField(id='1', label='test', type='block:foobar', max_items=3),
|
||||||
|
]
|
||||||
|
formdef.store()
|
||||||
|
|
||||||
|
app = get_app(pub)
|
||||||
|
resp = app.get(formdef.get_url())
|
||||||
|
resp.form['f1$element0$f123'] = 'foo'
|
||||||
|
resp.form['f1$element0$f234'] = '1'
|
||||||
|
resp = resp.form.submit('f1$add_element')
|
||||||
|
resp.form['f1$element1$f123'] = 'foo2'
|
||||||
|
resp.form['f1$element1$f234'] = '2'
|
||||||
|
|
||||||
|
resp = resp.form.submit('submit') # -> validation page
|
||||||
|
resp = resp.form.submit('submit') # -> submit
|
||||||
|
|
||||||
|
assert formdef.data_class().select()[0].data['1']['data'] == [
|
||||||
|
{'123': 'foo', '234': '1', '234_display': 'un'},
|
||||||
|
{'123': 'foo2', '234': '2', '234_display': 'deux'},
|
||||||
|
]
|
||||||
|
# by default it gets the type of object
|
||||||
|
assert formdef.data_class().select()[0].data['1_display'] == 'foobar, foobar'
|
||||||
|
|
||||||
|
# set a digest template
|
||||||
|
formdef.data_class().wipe()
|
||||||
|
|
||||||
|
block.digest_template = 'X{{foobar_var_bar}}Y'
|
||||||
|
block.store()
|
||||||
|
|
||||||
|
resp = app.get(formdef.get_url())
|
||||||
|
resp.form['f1$element0$f123'] = 'foo'
|
||||||
|
resp.form['f1$element0$f234'] = '1'
|
||||||
|
resp = resp.form.submit('f1$add_element')
|
||||||
|
resp.form['f1$element1$f123'] = 'foo2'
|
||||||
|
resp.form['f1$element1$f234'] = '2'
|
||||||
|
|
||||||
|
resp = resp.form.submit('submit') # -> validation page
|
||||||
|
resp = resp.form.submit('submit') # -> submit
|
||||||
|
assert formdef.data_class().select()[0].data['1']['data'] == [
|
||||||
|
{'123': 'foo', '234': '1', '234_display': 'un'},
|
||||||
|
{'123': 'foo2', '234': '2', '234_display': 'deux'},
|
||||||
|
]
|
||||||
|
assert formdef.data_class().select()[0].data['1_display'] == 'XunY, XdeuxY'
|
||||||
|
|
Loading…
Reference in New Issue