tests: add more tests around forms admin pages
This commit is contained in:
parent
b0e706dbec
commit
641267ecd5
|
@ -129,6 +129,211 @@ def test_forms_edit():
|
|||
assert FormDef.get(1).name == 'new title'
|
||||
assert FormDef.get(1).url_name == 'new-title'
|
||||
|
||||
def test_form_category():
|
||||
create_superuser()
|
||||
create_role()
|
||||
|
||||
FormDef.wipe()
|
||||
formdef = FormDef()
|
||||
formdef.name = 'form title'
|
||||
formdef.fields = []
|
||||
formdef.store()
|
||||
|
||||
app = login(get_app(pub))
|
||||
resp = app.get('/admin/forms/1/')
|
||||
assert 'Category:' not in resp.body
|
||||
|
||||
Category.wipe()
|
||||
cat = Category(name='Foo')
|
||||
cat.store()
|
||||
cat = Category(name='Bar')
|
||||
cat.store()
|
||||
resp = app.get('/admin/forms/1/')
|
||||
assert 'Category:' in resp.body
|
||||
|
||||
def test_form_category_select():
|
||||
create_superuser()
|
||||
create_role()
|
||||
|
||||
FormDef.wipe()
|
||||
formdef = FormDef()
|
||||
formdef.name = 'form title'
|
||||
formdef.fields = []
|
||||
formdef.store()
|
||||
|
||||
Category.wipe()
|
||||
cat = Category(name='Foo')
|
||||
cat.store()
|
||||
cat = Category(name='Bar')
|
||||
cat.store()
|
||||
|
||||
app = login(get_app(pub))
|
||||
resp = app.get('/admin/forms/1/')
|
||||
resp = resp.click(href='category')
|
||||
resp = resp.forms[0].submit('cancel')
|
||||
assert FormDef.get(formdef.id).category_id is None
|
||||
|
||||
resp = app.get('/admin/forms/1/')
|
||||
resp = resp.click(href='category')
|
||||
resp.forms[0]['category_id'] = cat.id
|
||||
resp = resp.forms[0].submit('submit')
|
||||
assert FormDef.get(formdef.id).category_id == cat.id
|
||||
|
||||
def test_form_workflow():
|
||||
create_superuser()
|
||||
create_role()
|
||||
|
||||
FormDef.wipe()
|
||||
formdef = FormDef()
|
||||
formdef.name = 'form title'
|
||||
formdef.fields = []
|
||||
formdef.store()
|
||||
|
||||
app = login(get_app(pub))
|
||||
resp = app.get('/admin/forms/1/')
|
||||
assert 'Workflow:' not in resp.body
|
||||
|
||||
Workflow.wipe()
|
||||
workflow = Workflow(name='Workflow One')
|
||||
workflow.store()
|
||||
workflow = Workflow(name='Workflow Two')
|
||||
workflow.store()
|
||||
|
||||
resp = app.get('/admin/forms/1/')
|
||||
assert 'Workflow:' in resp.body
|
||||
|
||||
def test_form_workflow_change():
|
||||
create_superuser()
|
||||
create_role()
|
||||
|
||||
FormDef.wipe()
|
||||
formdef = FormDef()
|
||||
formdef.name = 'form title'
|
||||
formdef.fields = []
|
||||
formdef.store()
|
||||
|
||||
Workflow.wipe()
|
||||
workflow = Workflow(name='Workflow One')
|
||||
workflow.store()
|
||||
workflow = Workflow(name='Workflow Two')
|
||||
workflow.possible_status = Workflow.get_default_workflow().possible_status[:]
|
||||
workflow.store()
|
||||
|
||||
app = login(get_app(pub))
|
||||
resp = app.get('/admin/forms/1/')
|
||||
resp = resp.click('change', href='workflow')
|
||||
resp = resp.forms[0].submit('cancel')
|
||||
assert FormDef.get(formdef.id).workflow_id is None
|
||||
|
||||
resp = app.get('/admin/forms/1/')
|
||||
resp = resp.click('change', href='workflow')
|
||||
assert 'Workflow One' not in resp.body # this workflow doesn't have any status
|
||||
resp.forms[0]['workflow_id'] = workflow.id
|
||||
resp = resp.forms[0].submit('submit')
|
||||
assert FormDef.get(formdef.id).workflow_id == workflow.id
|
||||
|
||||
def test_form_workflow_remapping():
|
||||
create_superuser()
|
||||
create_role()
|
||||
|
||||
FormDef.wipe()
|
||||
formdef = FormDef()
|
||||
formdef.name = 'form title'
|
||||
formdef.fields = []
|
||||
formdef.store()
|
||||
|
||||
data_class = formdef.data_class()
|
||||
data_class.wipe()
|
||||
formdata = data_class()
|
||||
formdata.status = 'wf-new'
|
||||
formdata.store()
|
||||
|
||||
Workflow.wipe()
|
||||
workflow = Workflow(name='Workflow One')
|
||||
workflow.store()
|
||||
workflow = Workflow(name='Workflow Two')
|
||||
# create it with a single status
|
||||
workflow.possible_status = [Workflow.get_default_workflow().possible_status[-1]]
|
||||
workflow.store()
|
||||
|
||||
app = login(get_app(pub))
|
||||
resp = app.get('/admin/forms/1/')
|
||||
resp = resp.click('change', href='workflow')
|
||||
resp.forms[0]['workflow_id'] = workflow.id
|
||||
resp = resp.forms[0].submit('submit')
|
||||
assert resp.location == 'http://example.net/admin/forms/1/workflow-status-remapping?new=2'
|
||||
resp = resp.follow()
|
||||
for status in Workflow.get_default_workflow().possible_status:
|
||||
assert resp.forms[0]['mapping-%s' % status.id]
|
||||
# there's only one possible new status
|
||||
assert len(resp.forms[0]['mapping-just_submitted'].options) == 1
|
||||
assert data_class.get(1).status == 'wf-new'
|
||||
resp = resp.forms[0].submit()
|
||||
assert data_class.get(1).status == 'wf-finished'
|
||||
|
||||
def test_form_workflow_role():
|
||||
create_superuser()
|
||||
create_role()
|
||||
|
||||
FormDef.wipe()
|
||||
formdef = FormDef()
|
||||
formdef.name = 'form title'
|
||||
formdef.fields = []
|
||||
formdef.store()
|
||||
|
||||
app = login(get_app(pub))
|
||||
resp = app.get('/admin/forms/1/')
|
||||
resp = resp.click('change', href='role/_receiver')
|
||||
resp = resp.forms[0].submit('cancel')
|
||||
|
||||
resp = app.get('/admin/forms/1/')
|
||||
resp = resp.click('change', href='role/_receiver')
|
||||
resp.forms[0]['role_id'] = 'foobar'
|
||||
resp = resp.forms[0].submit('submit')
|
||||
assert FormDef.get(1).workflow_roles == {'_receiver': 1}
|
||||
|
||||
def test_form_acl_read():
|
||||
create_superuser()
|
||||
create_role()
|
||||
|
||||
FormDef.wipe()
|
||||
formdef = FormDef()
|
||||
formdef.name = 'form title'
|
||||
formdef.fields = []
|
||||
formdef.store()
|
||||
|
||||
app = login(get_app(pub))
|
||||
resp = app.get('/admin/forms/1/')
|
||||
resp = resp.click('change', href='acl-read')
|
||||
resp = resp.forms[0].submit('cancel')
|
||||
|
||||
resp = app.get('/admin/forms/1/')
|
||||
resp = resp.click('change', href='acl-read')
|
||||
resp.forms[0]['acl_read'] = 'Everybody'
|
||||
resp = resp.forms[0].submit('submit')
|
||||
assert FormDef.get(1).acl_read == 'all'
|
||||
|
||||
def test_form_roles():
|
||||
create_superuser()
|
||||
create_role()
|
||||
|
||||
FormDef.wipe()
|
||||
formdef = FormDef()
|
||||
formdef.name = 'form title'
|
||||
formdef.fields = []
|
||||
formdef.store()
|
||||
|
||||
app = login(get_app(pub))
|
||||
resp = app.get('/admin/forms/1/')
|
||||
resp = resp.click('change', href='roles')
|
||||
resp = resp.forms[0].submit('cancel')
|
||||
|
||||
resp = app.get('/admin/forms/1/')
|
||||
resp = resp.click('change', href='roles')
|
||||
resp.forms[0]['always_advertise'] = True
|
||||
resp = resp.forms[0].submit('submit')
|
||||
assert FormDef.get(1).always_advertise == True
|
||||
|
||||
def test_form_delete():
|
||||
create_role()
|
||||
|
||||
|
@ -207,6 +412,7 @@ def test_form_qrcode():
|
|||
assert '<div id="qrcode">' in resp.body
|
||||
|
||||
def test_form_new_field():
|
||||
create_superuser()
|
||||
create_role()
|
||||
|
||||
FormDef.wipe()
|
||||
|
@ -232,6 +438,17 @@ def test_form_new_field():
|
|||
assert FormDef.get(1).fields[0].key == 'string'
|
||||
assert FormDef.get(1).fields[0].label == 'foobar'
|
||||
|
||||
# add a title too
|
||||
resp.forms[0]['label'] = 'baz'
|
||||
resp.forms[0]['type'] = 'Title'
|
||||
resp = resp.forms[0].submit()
|
||||
assert resp.location == 'http://example.net/admin/forms/1/fields/'
|
||||
resp = resp.follow()
|
||||
|
||||
# check it's in the preview
|
||||
resp = app.get('/admin/forms/1/')
|
||||
assert '<h3>baz</h3>' in resp.body
|
||||
|
||||
def test_form_delete_field():
|
||||
create_role()
|
||||
|
||||
|
|
Loading…
Reference in New Issue