1385 |
1385 |
draft_formdata = [x for x in resp.json['data'] if x['status'] == 'Draft'][0]
|
1386 |
1386 |
assert draft_formdata.get('url')[-1] != '/'
|
1387 |
1387 |
|
|
1388 |
formdata = formdef.data_class()()
|
|
1389 |
formdata.data = {'0': 'foo@localhost', '1': 'xyy'}
|
|
1390 |
formdata.user_id = local_user.id
|
|
1391 |
formdata.just_created()
|
|
1392 |
formdata.jump_status('new')
|
|
1393 |
formdata.store()
|
|
1394 |
|
|
1395 |
resp = get_app(pub).get(sign_uri('/api/user/forms', user=local_user))
|
|
1396 |
assert len(resp.json['data']) == 2
|
|
1397 |
resp2 = get_app(pub).get(sign_uri('/api/user/forms?sort=desc', user=local_user))
|
|
1398 |
assert len(resp2.json['data']) == 2
|
|
1399 |
assert resp2.json['data'][0] == resp.json['data'][1]
|
|
1400 |
assert resp2.json['data'][1] == resp.json['data'][0]
|
|
1401 |
|
|
1402 |
def test_user_forms_limit_offset(pub, local_user):
|
|
1403 |
if not pub.is_using_postgresql():
|
|
1404 |
pytest.skip('this requires SQL')
|
|
1405 |
return
|
|
1406 |
|
|
1407 |
FormDef.wipe()
|
|
1408 |
formdef = FormDef()
|
|
1409 |
formdef.name = 'test limit offset'
|
|
1410 |
formdef.fields = [
|
|
1411 |
fields.StringField(id='0', label='foobar', varname='foobar'),
|
|
1412 |
fields.StringField(id='1', label='foobar2'),]
|
|
1413 |
formdef.keywords = 'hello, world'
|
|
1414 |
formdef.disabled = False
|
|
1415 |
formdef.enable_tracking_codes = False
|
|
1416 |
formdef.store()
|
|
1417 |
formdef.data_class().wipe()
|
|
1418 |
|
|
1419 |
for i in range(50):
|
|
1420 |
formdata = formdef.data_class()()
|
|
1421 |
formdata.data = {'0': 'foo@localhost', '1': str(i)}
|
|
1422 |
formdata.user_id = local_user.id
|
|
1423 |
formdata.just_created()
|
|
1424 |
formdata.receipt_time = (datetime.datetime.now() + datetime.timedelta(days=i)).timetuple()
|
|
1425 |
formdata.jump_status('new')
|
|
1426 |
formdata.store()
|
|
1427 |
|
|
1428 |
resp = get_app(pub).get(sign_uri('/api/users/%s/forms' % local_user.id))
|
|
1429 |
assert resp.json['err'] == 0
|
|
1430 |
assert len(resp.json['data']) == 50
|
|
1431 |
|
|
1432 |
resp = get_app(pub).get(sign_uri('/api/users/%s/forms?limit=10' % local_user.id))
|
|
1433 |
assert resp.json['err'] == 0
|
|
1434 |
assert len(resp.json['data']) == 10
|
|
1435 |
assert [x['form_number_raw'] for x in resp.json['data']] == [str(x) for x in range(1, 11)]
|
|
1436 |
|
|
1437 |
resp = get_app(pub).get(sign_uri('/api/users/%s/forms?limit=10&offset=45' % local_user.id))
|
|
1438 |
assert resp.json['err'] == 0
|
|
1439 |
assert len(resp.json['data']) == 5
|
|
1440 |
assert [x['form_number_raw'] for x in resp.json['data']] == [str(x) for x in range(46, 51)]
|
|
1441 |
|
|
1442 |
resp = get_app(pub).get(sign_uri('/api/users/%s/forms?limit=10&sort=desc' % local_user.id))
|
|
1443 |
assert resp.json['err'] == 0
|
|
1444 |
assert len(resp.json['data']) == 10
|
|
1445 |
assert [x['form_number_raw'] for x in resp.json['data']] == [str(x) for x in range(50, 40, -1)]
|
|
1446 |
|
1388 |
1447 |
def test_user_forms_from_agent(pub, local_user):
|
1389 |
1448 |
Role.wipe()
|
1390 |
1449 |
role = Role(name='Foo bar')
|