from gluon.contrib.webclient import WebClientsession.get('user/register')session_id_welcome = session.cookies['session_id_welcome']print session.forms # tells you which forms are in page (*)data = dict(first_name = 'Homer',last_name = 'Simpson',password = 'test',password_two = 'test',_formname = 'register') # (*)session.post('user/register',data = data)session.get('user/login')password='test',_formname = 'login')session.post('user/login',data = data)session.get('index')# check registration and login were successfulassert 'Welcome Homer' in session.text# check we are always in the same sessionassert session_id_welcome == session.cookies['session_id_welcome']It understand sessions (not just web2py session)It understands basic auth (not used in the example)It understands web2py forms (*) and fills in the _formkeys.Suggestions for improvement?Massimo
from gluon.contrib.webclient import WebClientsession = WebClient('http://127.0.0.1:8000/welcome/default/')
session.get('index')session_id_welcome = session.cookies['session_id_welcome']session.get('user/register')
print session.forms # tells you which forms are in page (*)
data = dict(first_name = 'Homer',last_name = 'Simpson',email = 'ho...@web2py.com',password = 'test',password_two = 'test',_formname = 'register') # (*)session.post('user/register',data = data)
from gluon.contrib.webclient import WebClientclient = WebClient('http://127.0.0.1:8000/welcome/default/')client.get('user/register')
data = dict(first_name = 'Homer',last_name = 'Simpson',
email = 'ho...@web2py.com',
password = 'test',password_two = 'test',_formname = 'register') # (*)
client.post('user/register',data = data)
password='test',_formname = 'login')
client.post('user/login',data = data)client.get('index')
# check registration and login were successful
assert 'Welcome Homer' in client.textChecks automatically for persistant sessions and raises exception if sessions break or if a web ticket is issued.You can also doclient.get('index')print client.headersprint client.cookies # parsed as a dictprint client.forms # dict of formname:formvalueprint client.sessions # dict of appname:session_cookie_keyprint client.statusprint client.text
Anthony
Cool, but I was no longer in gluon?Or it's a change?
from gluon.contrib.webclient import WebClientclient = WebClient('http://127.0.0.1:8000/welcome/default/')client.get('user/register')
data = dict(first_name = 'Homer',last_name = 'Simpson',
email = 'ho...@web2py.com',
password = 'test',password_two = 'test',_formname = 'register') # (*)
client.post('user/register',data = data)
password='test',_formname = 'login')
client.post('user/login',data = data)
client.get('index')
# check registration and login were successful
did you or someone else manage to login anybody with webclient and a correct email address ?