tests: check for cards referenced in block widgets (#44816)
This commit is contained in:
parent
ae0bb033cc
commit
3fb2760f57
|
@ -29,6 +29,7 @@ from quixote import cleanup, get_publisher, get_response
|
|||
from quixote.http_request import Upload as QuixoteUpload
|
||||
from wcs.qommon import ods
|
||||
from wcs.api_utils import sign_url
|
||||
from wcs.blocks import BlockDef
|
||||
from wcs.qommon import errors, sessions
|
||||
from wcs.qommon.form import PicklableUpload
|
||||
from wcs.qommon.form import UploadedFile
|
||||
|
@ -7030,3 +7031,62 @@ def test_backoffice_table_varname_filter(pub):
|
|||
|
||||
resp = resp.forms['listing-settings'].submit()
|
||||
assert resp.text.count('<tr') == 6
|
||||
|
||||
|
||||
def test_block_card_item_link(pub, studio, blocks_feature):
|
||||
user = create_user(pub)
|
||||
CardDef.wipe()
|
||||
carddef = CardDef()
|
||||
carddef.name = 'foo'
|
||||
carddef.fields = [
|
||||
fields.StringField(id='1', label='Test', type='string', varname='foo'),
|
||||
]
|
||||
carddef.backoffice_submission_roles = user.roles
|
||||
carddef.workflow_roles = {'_editor': user.roles[0]}
|
||||
carddef.digest_template = 'card {{form_var_foo}}'
|
||||
carddef.store()
|
||||
carddef.data_class().wipe()
|
||||
|
||||
card = carddef.data_class()()
|
||||
card.data = {'1': 'plop'}
|
||||
card.store()
|
||||
|
||||
card2 = carddef.data_class()()
|
||||
card2.data = {'1': 'plop2'}
|
||||
card2.store()
|
||||
|
||||
block = BlockDef()
|
||||
block.name = 'foobar'
|
||||
block.fields = [
|
||||
fields.ItemField(id='1', label='Test', type='item',
|
||||
data_source={'type': 'carddef:foo', 'value': ''}),
|
||||
]
|
||||
block.store()
|
||||
|
||||
formdef = FormDef()
|
||||
formdef.name = 'bar'
|
||||
formdef.fields = [
|
||||
fields.BlockField(id='1', label='test', type='block:foobar', max_items=3),
|
||||
]
|
||||
formdef.store()
|
||||
formdef.data_class().wipe()
|
||||
|
||||
app = login(get_app(pub))
|
||||
resp = app.get('/bar/')
|
||||
resp.form['f1$element0$f1'].value = card.id
|
||||
resp = resp.form.submit('f1$add_element')
|
||||
resp.form['f1$element1$f1'].value = card2.id
|
||||
resp = resp.form.submit('submit') # -> validation page
|
||||
assert resp.form['f1$element0$f1'].value == str(card.id)
|
||||
assert resp.form['f1$element0$f1_label'].value == 'card plop'
|
||||
assert resp.form['f1$element1$f1'].value == str(card2.id)
|
||||
assert resp.form['f1$element1$f1_label'].value == 'card plop2'
|
||||
resp = resp.form.submit('submit') # -> final submit
|
||||
resp = resp.follow()
|
||||
assert '<div class="value">card plop</div>' in resp
|
||||
assert '<div class="value">card plop2</div>' in resp
|
||||
|
||||
# check cards are links in backoffice
|
||||
resp = app.get('/backoffice/management' + resp.request.path)
|
||||
assert '<div class="value"><a href="http://example.net/backoffice/data/foo/%s/">card plop</a></div></div>' % card.id in resp
|
||||
assert '<div class="value"><a href="http://example.net/backoffice/data/foo/%s/">card plop2</a></div></div>' % card2.id in resp
|
||||
|
|
Loading…
Reference in New Issue