from webob import Request
import webtest
def input_app(environ, start_response):
req = Request(environ)
status = "200 OK"
body =\
"""
form page
"""
headers = [
('Content-Type', 'text/html'),
('Content-Length', str(len(body)))]
start_response(status, headers)
return [body]
def input_app_without_default(environ, start_response):
req = Request(environ)
status = "200 OK"
body =\
"""
form page
"""
headers = [
('Content-Type', 'text/html'),
('Content-Length', str(len(body)))]
start_response(status, headers)
return [body]
def test_input():
app = webtest.TestApp(input_app)
res = app.get('/')
assert res.status_int == 200
assert res.headers['content-type'] == 'text/html'
assert res.content_type == 'text/html'
form = res.forms['text_input_form']
assert form['foo'].value == 'bar'
assert form.submit_fields() == [('foo', 'bar')]
form = res.forms['radio_input_form']
assert form['foo'].value == 'baz'
assert form.submit_fields() == [('foo', 'baz')]
form = res.forms['checkbox_input_form']
assert form['foo'].value == 'bar'
assert form.submit_fields() == [('foo', 'bar')]
def test_input_no_default():
app = webtest.TestApp(input_app_without_default)
res = app.get('/')
assert res.status_int == 200
assert res.headers['content-type'] == 'text/html'
assert res.content_type == 'text/html'
form = res.forms['text_input_form']
assert form['foo'].value == ''
assert form.submit_fields() == [('foo', '')]
form = res.forms['radio_input_form']
assert form['foo'].value is None
assert form.submit_fields() == []
form = res.forms['checkbox_input_form']
assert form['foo'].value is None
assert form.submit_fields() == []