tests: add test for formdata api

This commit is contained in:
Frédéric Péters 2015-03-24 22:11:28 +01:00
parent c0a8588024
commit dcfc3d1c98
1 changed files with 32 additions and 0 deletions

View File

@ -38,6 +38,17 @@ def teardown_module(module):
global pub
shutil.rmtree(pub.APP_DIR)
def sign_uri(uri):
timestamp = datetime.datetime.utcnow().isoformat()[:19] + 'Z'
query = 'format=json&orig=coucou&algo=sha256&email=' + urllib.quote(user.email) + '&timestamp=' + timestamp
signature = urllib.quote(
base64.b64encode(
hmac.new('1234',
query,
hashlib.sha256).digest()))
return uri + '?%s&signature=%s' % (query, signature)
def test_user_page_redirect():
output = get_app(pub).get('/user')
assert output.headers.get('location') == 'http://example.net/myspace/'
@ -197,3 +208,24 @@ def test_categories():
assert resp.json['data'][0]['title'] == 'category'
assert resp.json['data'][0]['url'] == 'http://example.net/category/'
assert resp.json['data'][0]['description'] == 'hello world'
def test_formdata():
FormDef.wipe()
formdef = FormDef()
formdef.name = 'test'
formdef.fields = [
fields.StringField(id='0', label='foobar', varname='foobar'),
fields.StringField(id='1', label='foobar2'),]
formdef.store()
formdata = formdef.data_class()()
formdata.data = {'0': 'foo@localhost', '1': 'xxx'}
formdata.user_id = user.id
formdata.just_created()
formdata.store()
resp = get_app(pub).get(sign_uri('/test/%s/' % formdata.id))
assert 'last_update_time' in resp.json
assert resp.json['user']['name'] == user.name
assert resp.json['fields']['foobar'] == 'foo@localhost'
assert len(resp.json['fields']) == 1 # foobar2 has no varname, not in json