From a80399818f095af9c50823acf3e58c13a1a6094f Mon Sep 17 00:00:00 2001 From: Vinicius Assef Date: Tue, 5 Nov 2013 05:29:01 -0200 Subject: [PATCH] Submit forms using web2py.submit() --- tests/conftest.py | 22 ++++++++++++++++ .../test_people_controller_web2pyenv.py | 26 ++----------------- 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/tests/conftest.py b/tests/conftest.py index c7ce5ef..5af9a2a 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -118,6 +118,27 @@ def run(controller, function, env): return r + def submit(controller, action, env, data=None, formname=None): + """Submits a form, setting _formkey and _formname accordingly. + + env must be the web2py environment fixture. + """ + + formname = formname or "default" + + hidden = dict( + _formkey=action, + _formname=formname + ) + + if data: + env.request.post_vars.update(data) + env.request.post_vars.update(hidden) + env.session["_formkey[%s]" % formname] = [action] + + return env.run(controller, action, env) + + from gluon.shell import env from gluon.storage import Storage @@ -127,6 +148,7 @@ def run(controller, function, env): del web2py_env['__file__'] # avoid py.test import error web2py_env['run'] = run + web2py_env['submit'] = submit globals().update(web2py_env) return Storage(web2py_env) diff --git a/tests/controllers/test_people_controller_web2pyenv.py b/tests/controllers/test_people_controller_web2pyenv.py index 6d9098b..e3f910a 100644 --- a/tests/controllers/test_people_controller_web2pyenv.py +++ b/tests/controllers/test_people_controller_web2pyenv.py @@ -52,7 +52,7 @@ def test_validate_new_person(web2py): phone='', ) - result = _submit_form('people', 'new_person', web2py, data, + result = web2py.submit('people', 'new_person', web2py, data, formname='new_person_form') assert result['form'].errors @@ -76,7 +76,7 @@ def test_save_new_person(web2py): phone='9988-7766', ) - result = _submit_form('people', 'new_person', web2py, data, + result = web2py.submit('people', 'new_person', web2py, data, formname='new_person_form') html = web2py.response.render('people/new_person.html', result) @@ -117,25 +117,3 @@ def test_get_person_by_creation_date(web2py): person = json.loads(html) assert person['name'] == data['name'] assert person['created_at'] == data['created_at'] - - - -def _submit_form(controller, action, env, data=None, formname=None): - """Submits a form, setting _formkey and _formname accordingly. - - env must be the web2py environment fixture. - """ - - formname = formname or "default" - - hidden = dict( - _formkey=action, - _formname=formname - ) - - if data: - env.request.post_vars.update(data) - env.request.post_vars.update(hidden) - env.session["_formkey[%s]" % formname] = [action] - - return env.run(controller, action, env)