68 lines
1.5 KiB
Python
68 lines
1.5 KiB
Python
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',
|
|
})
|