tests: add tests for formdata get_submitter_email
This commit is contained in:
parent
9ae34f4c8c
commit
3e6de7a813
|
@ -1,16 +1,19 @@
|
|||
import shutil
|
||||
from quixote import cleanup
|
||||
|
||||
from wcs.qommon.ident.password_accounts import PasswordAccount
|
||||
from wcs.formdef import FormDef
|
||||
from wcs.categories import Category
|
||||
from wcs import fields
|
||||
|
||||
from utilities import get_app, login, create_temporary_pub
|
||||
from utilities import get_app, login, create_temporary_pub, emails
|
||||
|
||||
def setup_module(module):
|
||||
cleanup()
|
||||
global pub
|
||||
pub = create_temporary_pub()
|
||||
pub.cfg['identification'] = {'methods': ['password']}
|
||||
pub.write_cfg()
|
||||
|
||||
cat = Category(name='foobar')
|
||||
cat.store()
|
||||
|
@ -132,3 +135,26 @@ def test_form_multi_page():
|
|||
assert formdef.data_class().count() == 1
|
||||
data = formdef.data_class().get(1)
|
||||
assert data.data == {'1': 'foo', '3': 'bar'}
|
||||
|
||||
def test_form_submit_with_user():
|
||||
user = pub.user_class()
|
||||
user.email = 'foo@localhost'
|
||||
user.store()
|
||||
account = PasswordAccount(id='foo')
|
||||
account.set_password('foo')
|
||||
account.user_id = user.id
|
||||
account.store()
|
||||
|
||||
formdef = create_formdef()
|
||||
formdef.data_class().wipe()
|
||||
page = login(get_app(pub), username='foo', password='foo').get('/test/')
|
||||
next_page = page.forms[0].submit('submit')
|
||||
assert 'Check values then click submit.' in next_page.body
|
||||
next_page = next_page.forms[0].submit('submit')
|
||||
assert next_page.status_int == 302
|
||||
next_page = next_page.follow()
|
||||
assert 'The form has been recorded' in next_page.body
|
||||
assert formdef.data_class().count() == 1
|
||||
# check the user received a copy by email
|
||||
assert emails.emails.get('New form (test)')
|
||||
assert emails.emails.get('New form (test)')['kwargs']['email_rcpt'] == ['foo@localhost']
|
||||
|
|
|
@ -101,3 +101,21 @@ def test_file_field():
|
|||
assert substvars.get('form_var_foo') == 'test.txt'
|
||||
assert substvars.get('form_var_foo_url').endswith('/foobar/1/download?f=0')
|
||||
assert isinstance(substvars.get('form_var_foo_raw'), Upload)
|
||||
|
||||
def test_get_submitter():
|
||||
formdef.data_class().wipe()
|
||||
formdef.fields = [fields.StringField(id='0', label='email', varname='foo',
|
||||
prefill={'type': 'user', 'value': 'email'})]
|
||||
formdef.store()
|
||||
|
||||
formdata = formdef.data_class()()
|
||||
assert formdef.get_submitter_email(formdata) is None
|
||||
formdata.data = {'0': 'foo@localhost'}
|
||||
assert formdef.get_submitter_email(formdata) == 'foo@localhost'
|
||||
|
||||
user = pub.user_class()
|
||||
user.email = 'bar@localhost'
|
||||
user.store()
|
||||
|
||||
formdata.user_id = user.id
|
||||
assert formdef.get_submitter_email(formdata) == 'bar@localhost'
|
||||
|
|
Loading…
Reference in New Issue