pdnew/tests/test_004_form.py

68 lines
1.5 KiB
Python
Raw Permalink Normal View History

import flask
import main
def test_form_field_access():
f = main.form.Form()
f.fields['foo'] = main.form.Integer()
assert isinstance(f['foo'], main.form.Integer)
assert isinstance(f.fields['foo'], main.form.Integer)
f = main.form.Form()
f['foo'] = main.form.Integer()
assert isinstance(f['foo'], main.form.Integer)
assert isinstance(f.fields['foo'], main.form.Integer)
def test_form_button_access():
f = main.form.Form()
f.buttons['foo'] = main.form.Button()
assert isinstance(f.buttons['foo'], main.form.Button)
def test_form_class_fields():
class TestForm(main.form.Form):
foo = main.form.Text()
bar = main.form.Integer()
f = TestForm()
assert 'foo' in f and isinstance(f['foo'], main.form.Text)
assert 'bar' in f and isinstance(f['bar'], main.form.Integer)
def test_form_submit(app, client, echo):
class TestForm(main.form.Form):
foo = main.form.Text(required=True)
bar = main.form.Integer(required=True)
send = main.form.Button()
@app.route('/test/form/submit/', methods=['GET', 'POST'])
@main.rendering.page()
def endpoint_test_form_submit():
f = TestForm()
if flask.request.method == 'POST':
f.handle()
echo(flask.request.form)
assert f['foo'].value == 'bongo'
assert f['bar'].value == 23
return f
response = client.post('/test/form/submit/', data={
'testform.foo': 'bongo',
'testform.bar': '23',
'submit': 'testform.send',
})