0002-add-new-version-to-api-user-form-API-fixes-13184.patch
tests/test_api.py | ||
---|---|---|
1020 | 1020 |
resp = get_app(pub).get(sign_uri('/api/user/forms', user=local_user)) |
1021 | 1021 |
assert len(resp.json) == 1 |
1022 | 1022 | |
1023 |
resp = get_app(pub).get(sign_uri('/api/user/forms?NameID=xxx'), status=403) |
|
1024 | ||
1025 | ||
1026 |
def test_user_forms_v1(pub, local_user): |
|
1027 |
FormDef.wipe() |
|
1028 |
formdef = FormDef() |
|
1029 |
formdef.name = 'test' |
|
1030 |
formdef.fields = [ |
|
1031 |
fields.StringField(id='0', label='foobar', varname='foobar'), |
|
1032 |
fields.StringField(id='1', label='foobar2'),] |
|
1033 |
formdef.keywords = 'hello, world' |
|
1034 |
formdef.store() |
|
1035 |
formdef.data_class().wipe() |
|
1036 | ||
1037 |
resp = get_app(pub).get(sign_uri('/api/user/forms?api_version=1', user=local_user)) |
|
1038 |
assert resp.json['err'] == 0 |
|
1039 |
assert len(resp.json['data']) == 0 |
|
1040 | ||
1041 |
formdata = formdef.data_class()() |
|
1042 |
formdata.data = {'0': 'foo@localhost', '1': 'xxx'} |
|
1043 |
formdata.user_id = local_user.id |
|
1044 |
formdata.just_created() |
|
1045 |
formdata.jump_status('new') |
|
1046 |
formdata.store() |
|
1047 | ||
1048 |
resp = get_app(pub).get(sign_uri('/api/user/forms?api_version=1', user=local_user)) |
|
1049 |
resp2 = get_app(pub).get(sign_uri('/myspace/forms?api_version=1', user=local_user)) |
|
1050 |
resp3 = get_app(pub).get(sign_uri('/api/users/%s/forms?api_version=1' % local_user.id)) |
|
1051 |
assert resp.json['err'] == 0 |
|
1052 |
assert len(resp.json['data']) == 1 |
|
1053 |
assert resp.json['data'][0]['form_name'] == 'test' |
|
1054 |
assert resp.json['data'][0]['form_slug'] == 'test' |
|
1055 |
assert resp.json['data'][0]['form_status'] == 'New' |
|
1056 |
assert resp.json['data'][0]['keywords'] == ['hello', 'world'] |
|
1057 |
assert resp.json == resp2.json == resp3.json |
|
1058 | ||
1059 |
resp = get_app(pub).get(sign_uri('/api/user/forms?api_version=1&full=on', user=local_user)) |
|
1060 |
assert resp.json['err'] == 0 |
|
1061 |
assert resp.json['data'][0]['fields']['foobar'] == 'foo@localhost' |
|
1062 |
assert resp.json['data'][0]['keywords'] == ['hello', 'world'] |
|
1063 | ||
1064 |
formdef.disabled = True |
|
1065 |
formdef.store() |
|
1066 |
resp = get_app(pub).get(sign_uri('/api/user/forms?api_version=1', user=local_user)) |
|
1067 |
assert resp.json['err'] == 0 |
|
1068 |
assert len(resp.json['data']) == 1 |
|
1069 | ||
1070 |
resp = get_app(pub).get(sign_uri('/api/user/forms?api_version=1&NameID=xxx')) |
|
1071 |
assert resp.json == {'err': 1, 'err_desc': 'unknown user', 'data': []} |
|
1072 | ||
1073 | ||
1023 | 1074 |
def test_user_drafts(pub, local_user): |
1024 | 1075 |
FormDef.wipe() |
1025 | 1076 |
formdef = FormDef() |
wcs/api.py | ||
---|---|---|
462 | 462 |
encoding=get_publisher().site_charset) |
463 | 463 | |
464 | 464 |
def forms(self): |
465 |
api_version = get_request().get_api_version() |
|
465 | 466 |
get_response().set_content_type('application/json') |
466 |
user = self.user or get_user_from_api_query_string() or get_request().user |
|
467 |
try: |
|
468 |
user = self.user or get_user_from_api_query_string() or get_request().user |
|
469 |
except UnknownNameIdAccessForbiddenError: |
|
470 |
user = None |
|
467 | 471 |
if not user: |
468 |
raise AccessForbiddenError('no user specified') |
|
472 |
if api_version < 1: |
|
473 |
raise AccessForbiddenError('no user specified') |
|
474 |
return json.dumps({'err': 1, 'err_desc': 'unknown user', 'data': []}) |
|
469 | 475 |
forms = [] |
470 | 476 |
for form in self.get_user_forms(user): |
471 | 477 |
if form.is_draft(): |
... | ... | |
478 | 484 |
id = form.get_display_id() |
479 | 485 |
status = visible_status.name |
480 | 486 |
title = _('%(name)s #%(id)s (%(status)s)') % { |
481 |
'name': name,
|
|
482 |
'id': id,
|
|
483 |
'status': status
|
|
487 |
'name': name, |
|
488 |
'id': id, |
|
489 |
'status': status |
|
484 | 490 |
} |
485 | 491 |
url = form.get_url() |
486 |
d = {'title': title, |
|
492 |
d = { |
|
493 |
'title': title, |
|
487 | 494 |
'name': form.formdef.name, |
488 | 495 |
'url': url, |
489 | 496 |
'datetime': misc.strftime.strftime('%Y-%m-%d %H:%M:%S', form.receipt_time), |
... | ... | |
494 | 501 |
if get_request().form.get('full') == 'on': |
495 | 502 |
d.update(form.get_json_export_dict(include_files=False)) |
496 | 503 |
forms.append(d) |
497 | ||
498 |
return json.dumps(forms, |
|
499 |
cls=misc.JSONEncoder, |
|
500 |
encoding=get_publisher().site_charset) |
|
504 |
if api_version > 0: |
|
505 |
forms = {'err': 0, 'data': forms} |
|
506 |
return json.dumps(forms, cls=misc.JSONEncoder, encoding=get_publisher().site_charset) |
|
501 | 507 | |
502 | 508 | |
503 | 509 |
class ApiUsersDirectory(Directory): |
504 |
- |