tests: add test for formdata api
This commit is contained in:
parent
c0a8588024
commit
dcfc3d1c98
|
@ -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) + '×tamp=' + 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
|
||||
|
|
Loading…
Reference in New Issue