misc: split test module (#47323)
This commit is contained in:
parent
fa9e2aedb0
commit
ecccd87464
|
@ -1632,92 +1632,6 @@ def test_studio_workflows(pub, studio):
|
|||
assert 'This is the default workflow,' in resp.text
|
||||
|
||||
|
||||
def test_cards_new(pub, studio):
|
||||
CardDef.wipe()
|
||||
create_superuser(pub)
|
||||
app = login(get_app(pub))
|
||||
resp = app.get('/backoffice/cards/')
|
||||
resp = resp.click('New Card Model')
|
||||
resp.form['name'] = 'card title'
|
||||
resp = resp.form.submit()
|
||||
assert resp.location == 'http://example.net/backoffice/cards/1/'
|
||||
resp = resp.follow()
|
||||
assert '<h2>card title' in resp.text
|
||||
assert CardDef.get(1).workflow_id is None
|
||||
assert CardDef.get(1).disabled is False
|
||||
|
||||
|
||||
def test_cards_delete(pub, studio):
|
||||
test_cards_new(pub, studio)
|
||||
app = login(get_app(pub))
|
||||
|
||||
carddef = CardDef.select()[0]
|
||||
carddata = carddef.data_class()()
|
||||
carddata.just_created()
|
||||
carddata.data = {}
|
||||
carddata.store()
|
||||
|
||||
resp = app.get('http://example.net/backoffice/cards/1/')
|
||||
resp = resp.click('Delete')
|
||||
if pub.is_using_postgresql():
|
||||
assert 'Deletion is not possible as there are cards.' in resp
|
||||
carddef.data_class().wipe()
|
||||
resp = app.get('http://example.net/backoffice/cards/1/')
|
||||
resp = resp.click('Delete')
|
||||
|
||||
resp = resp.form.submit('submit')
|
||||
assert CardDef.count() == 0
|
||||
|
||||
carddata.remove_self() # don't keep leftovers
|
||||
|
||||
|
||||
def test_cards_duplicate(pub, studio):
|
||||
test_cards_new(pub, studio)
|
||||
app = login(get_app(pub))
|
||||
resp = app.get('http://example.net/backoffice/cards/1/')
|
||||
resp = resp.click('Duplicate')
|
||||
assert CardDef.get(2).name == 'card title (copy)'
|
||||
assert CardDef.get(2).disabled is False
|
||||
|
||||
|
||||
def test_card_workflow_change(pub, studio):
|
||||
Workflow.wipe()
|
||||
workflow = Workflow(name='Workflow Two')
|
||||
workflow.add_status('plop')
|
||||
workflow.store()
|
||||
|
||||
CardDef.wipe()
|
||||
create_superuser(pub)
|
||||
app = login(get_app(pub))
|
||||
resp = app.get('/backoffice/cards/')
|
||||
resp = resp.click('New Card Model')
|
||||
resp.form['name'] = 'card title'
|
||||
resp = resp.form.submit()
|
||||
resp = resp.follow()
|
||||
resp = resp.click(href='workflow', index=1)
|
||||
assert resp.form['workflow_id'].options[0][2] == 'Default (cards)'
|
||||
resp = resp.form.submit('submit').follow()
|
||||
assert CardDef.select()[0].workflow_id is None
|
||||
|
||||
carddata = CardDef.select()[0].data_class()()
|
||||
carddata.status = 'wf-recorded'
|
||||
carddata.store()
|
||||
|
||||
resp = resp.click(href='workflow', index=1)
|
||||
resp.form['workflow_id'] = '%s' % workflow.id
|
||||
resp = resp.form.submit('submit')
|
||||
assert resp.location == 'http://example.net/backoffice/cards/1/workflow-status-remapping?new=%s' % workflow.id
|
||||
resp = resp.follow()
|
||||
resp = resp.form.submit('submit').follow()
|
||||
|
||||
resp = resp.click(href='workflow', index=1)
|
||||
resp.form['workflow_id'] = ''
|
||||
resp = resp.form.submit('submit')
|
||||
assert resp.location == 'http://example.net/backoffice/cards/1/workflow-status-remapping?new=%s' % '_carddef_default'
|
||||
resp = resp.follow()
|
||||
resp = resp.form.submit('submit').follow()
|
||||
|
||||
|
||||
def test_create_formdata(pub):
|
||||
create_superuser(pub)
|
||||
create_role()
|
||||
|
@ -2012,39 +1926,3 @@ def test_block_use_in_formdef(pub, blocks_feature):
|
|||
assert 'a block field' in resp.text
|
||||
resp = resp.click('Edit', href='1/')
|
||||
assert resp.form['max_items'].value == '1'
|
||||
|
||||
|
||||
def test_card_custom_view_data_source(pub, studio):
|
||||
from test_backoffice_pages import create_environment, test_carddata_custom_view, create_superuser
|
||||
create_environment(pub)
|
||||
test_carddata_custom_view(pub, studio)
|
||||
|
||||
carddef = CardDef.select()[0]
|
||||
carddef.digest_template = '{{ form_var_foo }}'
|
||||
carddef.store()
|
||||
|
||||
create_superuser(pub)
|
||||
app = login(get_app(pub))
|
||||
resp = app.get('/backoffice/data/foo/user-card-view/')
|
||||
resp.forms['listing-settings']['filter-1'].checked = True
|
||||
resp = resp.forms['listing-settings'].submit()
|
||||
resp.forms['listing-settings']['filter-1-value'] = 'FOO 0'
|
||||
resp = resp.forms['listing-settings'].submit()
|
||||
resp.forms['save-custom-view']['visibility'] = 'datasource'
|
||||
resp = resp.forms['save-custom-view'].submit()
|
||||
assert pub.custom_view_class.count() == 1
|
||||
assert pub.custom_view_class.select()[0].visibility == 'datasource'
|
||||
|
||||
formdef = FormDef.get_by_urlname('form-title')
|
||||
resp = app.get('/backoffice/forms/%s/fields/' % formdef.id)
|
||||
|
||||
resp.forms[0]['label'] = 'foobar'
|
||||
resp.forms[0]['type'] = 'item'
|
||||
resp = resp.forms[0].submit()
|
||||
resp = resp.follow()
|
||||
formdef = FormDef.get_by_urlname('form-title')
|
||||
resp = resp.click(href='%s/' % formdef.fields[-1].id, index=0)
|
||||
assert 'carddef:foo' in [x[0] for x in resp.form['data_source$type'].options]
|
||||
assert 'carddef:foo:card-view' in [x[0] for x in resp.form['data_source$type'].options]
|
||||
assert len(CardDef.get_data_source_items('carddef:foo')) == 50
|
||||
assert len(CardDef.get_data_source_items('carddef:foo:card-view')) == 1
|
||||
|
|
|
@ -0,0 +1,198 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
import pytest
|
||||
|
||||
from wcs import fields
|
||||
from wcs.carddef import CardDef
|
||||
from wcs.formdef import FormDef
|
||||
from wcs.qommon.http_request import HTTPRequest
|
||||
from wcs.roles import Role
|
||||
from wcs.workflows import Workflow
|
||||
|
||||
from utilities import get_app, login, create_temporary_pub, clean_temporary_pub
|
||||
from test_admin_pages import create_superuser
|
||||
|
||||
|
||||
def pytest_generate_tests(metafunc):
|
||||
if 'pub' in metafunc.fixturenames:
|
||||
metafunc.parametrize('pub', ['pickle', 'sql', 'pickle-templates'], indirect=True)
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def pub(request):
|
||||
pub = create_temporary_pub(
|
||||
sql_mode=bool('sql' in request.param),
|
||||
templates_mode=bool('templates' in request.param)
|
||||
)
|
||||
|
||||
req = HTTPRequest(None, {'SCRIPT_NAME': '/', 'SERVER_NAME': 'example.net'})
|
||||
pub.set_app_dir(req)
|
||||
pub.cfg['identification'] = {'methods': ['password']}
|
||||
pub.cfg['language'] = {'language': 'en'}
|
||||
pub.write_cfg()
|
||||
|
||||
return pub
|
||||
|
||||
|
||||
def teardown_module(module):
|
||||
clean_temporary_pub()
|
||||
|
||||
|
||||
def test_cards_new(pub, studio):
|
||||
CardDef.wipe()
|
||||
create_superuser(pub)
|
||||
app = login(get_app(pub))
|
||||
resp = app.get('/backoffice/cards/')
|
||||
resp = resp.click('New Card Model')
|
||||
resp.form['name'] = 'card title'
|
||||
resp = resp.form.submit()
|
||||
assert resp.location == 'http://example.net/backoffice/cards/1/'
|
||||
resp = resp.follow()
|
||||
assert '<h2>card title' in resp.text
|
||||
assert CardDef.get(1).workflow_id is None
|
||||
assert CardDef.get(1).disabled is False
|
||||
|
||||
|
||||
def test_cards_delete(pub, studio):
|
||||
CardDef.wipe()
|
||||
carddef = CardDef()
|
||||
carddef.name = 'card title'
|
||||
carddef.fields = []
|
||||
carddef.store()
|
||||
create_superuser(pub)
|
||||
app = login(get_app(pub))
|
||||
|
||||
carddata = carddef.data_class()()
|
||||
carddata.just_created()
|
||||
carddata.data = {}
|
||||
carddata.store()
|
||||
|
||||
resp = app.get('http://example.net/backoffice/cards/1/')
|
||||
resp = resp.click('Delete')
|
||||
if pub.is_using_postgresql():
|
||||
assert 'Deletion is not possible as there are cards.' in resp
|
||||
carddef.data_class().wipe()
|
||||
resp = app.get('http://example.net/backoffice/cards/1/')
|
||||
resp = resp.click('Delete')
|
||||
|
||||
resp = resp.form.submit('submit')
|
||||
assert CardDef.count() == 0
|
||||
|
||||
carddata.remove_self() # don't keep leftovers
|
||||
|
||||
|
||||
def test_cards_duplicate(pub, studio):
|
||||
CardDef.wipe()
|
||||
carddef = CardDef()
|
||||
carddef.name = 'card title'
|
||||
carddef.fields = []
|
||||
carddef.store()
|
||||
create_superuser(pub)
|
||||
app = login(get_app(pub))
|
||||
resp = app.get('http://example.net/backoffice/cards/1/')
|
||||
resp = resp.click('Duplicate')
|
||||
assert CardDef.get(2).name == 'card title (copy)'
|
||||
assert CardDef.get(2).disabled is False
|
||||
|
||||
|
||||
def test_card_workflow_change(pub, studio):
|
||||
Workflow.wipe()
|
||||
workflow = Workflow(name='Workflow Two')
|
||||
workflow.add_status('plop')
|
||||
workflow.store()
|
||||
|
||||
CardDef.wipe()
|
||||
create_superuser(pub)
|
||||
app = login(get_app(pub))
|
||||
resp = app.get('/backoffice/cards/')
|
||||
resp = resp.click('New Card Model')
|
||||
resp.form['name'] = 'card title'
|
||||
resp = resp.form.submit()
|
||||
resp = resp.follow()
|
||||
resp = resp.click(href='workflow', index=1)
|
||||
assert resp.form['workflow_id'].options[0][2] == 'Default (cards)'
|
||||
resp = resp.form.submit('submit').follow()
|
||||
assert CardDef.select()[0].workflow_id is None
|
||||
|
||||
carddata = CardDef.select()[0].data_class()()
|
||||
carddata.status = 'wf-recorded'
|
||||
carddata.store()
|
||||
|
||||
resp = resp.click(href='workflow', index=1)
|
||||
resp.form['workflow_id'] = '%s' % workflow.id
|
||||
resp = resp.form.submit('submit')
|
||||
assert resp.location == 'http://example.net/backoffice/cards/1/workflow-status-remapping?new=%s' % workflow.id
|
||||
resp = resp.follow()
|
||||
resp = resp.form.submit('submit').follow()
|
||||
|
||||
resp = resp.click(href='workflow', index=1)
|
||||
resp.form['workflow_id'] = ''
|
||||
resp = resp.form.submit('submit')
|
||||
assert resp.location == 'http://example.net/backoffice/cards/1/workflow-status-remapping?new=%s' % '_carddef_default'
|
||||
resp = resp.follow()
|
||||
resp = resp.form.submit('submit').follow()
|
||||
|
||||
|
||||
def test_card_custom_view_data_source(pub, studio):
|
||||
user = create_superuser(pub)
|
||||
Role.wipe()
|
||||
role = Role(name='foobar')
|
||||
role.store()
|
||||
user.roles = [role.id]
|
||||
user.store()
|
||||
|
||||
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 = '{{ form_var_foo }}'
|
||||
carddef.store()
|
||||
carddef.data_class().wipe()
|
||||
|
||||
for i in range(2):
|
||||
carddata = carddef.data_class()()
|
||||
carddata.data = {'1': 'FOO %s' % i}
|
||||
carddata.just_created()
|
||||
carddata.store()
|
||||
|
||||
app = login(get_app(pub))
|
||||
resp = app.get('/backoffice/data/foo/')
|
||||
resp = resp.forms['listing-settings'].submit()
|
||||
resp.forms['save-custom-view']['title'] = 'card view'
|
||||
resp = resp.forms['save-custom-view'].submit()
|
||||
|
||||
resp = app.get('/backoffice/data/foo/user-card-view/')
|
||||
resp.forms['listing-settings']['filter-1'].checked = True
|
||||
resp = resp.forms['listing-settings'].submit()
|
||||
resp.forms['listing-settings']['filter-1-value'] = 'FOO 0'
|
||||
resp = resp.forms['listing-settings'].submit()
|
||||
resp.forms['save-custom-view']['visibility'] = 'datasource'
|
||||
resp = resp.forms['save-custom-view'].submit()
|
||||
assert pub.custom_view_class.count() == 1
|
||||
assert pub.custom_view_class.select()[0].visibility == 'datasource'
|
||||
|
||||
FormDef.wipe()
|
||||
formdef = FormDef()
|
||||
formdef.name = 'form title'
|
||||
formdef.fields = [
|
||||
fields.ItemField(id='1', label='field', type='item', varname='foo'),
|
||||
]
|
||||
formdef.store()
|
||||
|
||||
formdef = FormDef.get_by_urlname('form-title')
|
||||
resp = app.get('/backoffice/forms/%s/fields/' % formdef.id)
|
||||
|
||||
resp.forms[0]['label'] = 'foobar'
|
||||
resp.forms[0]['type'] = 'item'
|
||||
resp = resp.forms[0].submit()
|
||||
resp = resp.follow()
|
||||
formdef = FormDef.get_by_urlname('form-title')
|
||||
resp = resp.click(href='%s/' % formdef.fields[-1].id, index=0)
|
||||
assert 'carddef:foo' in [x[0] for x in resp.form['data_source$type'].options]
|
||||
assert 'carddef:foo:card-view' in [x[0] for x in resp.form['data_source$type'].options]
|
||||
assert len(CardDef.get_data_source_items('carddef:foo')) == 2
|
||||
assert len(CardDef.get_data_source_items('carddef:foo:card-view')) == 1
|
Loading…
Reference in New Issue