api docs: Add page for common error payloads.

We now have a separate page for common error payloads, for example,
the payload for when the client's API key is invalid. All error
payloads that are presented on this page will be tested similarly
to our other non-error sample fixtures.
This commit is contained in:
Eeshan Garg 2018-02-06 16:34:07 -03:30 committed by Tim Abbott
parent 037c891fcf
commit 929724e5e7
21 changed files with 32 additions and 41 deletions

View File

@ -149,5 +149,3 @@ a private stream and `authorization_errors_fatal` is `False`:
} }
} }
``` ```
{!invalid-api-key-json-response.md!}

View File

@ -0,0 +1,7 @@
# Sample payloads for common errors
## Invalid API key
A typical failed JSON response for when the API key is invalid:
{generate_code_example|invalid-api-key|fixture}

View File

@ -84,5 +84,3 @@ email address already exists in the realm:
'result':'error' 'result':'error'
} }
``` ```
{!invalid-api-key-json-response.md!}

View File

@ -98,5 +98,3 @@ associated queue has already been deleted:
'msg':'Bad event queue id: 1515096410:2' 'msg':'Bad event queue id: 1515096410:2'
} }
``` ```
{!invalid-api-key-json-response.md!}

View File

@ -188,5 +188,9 @@
"new stream" "new stream"
], ],
"result":"success", "result":"success",
},
"invalid-api-key": {
"msg":"Invalid API key",
"result":"error"
} }
} }

View File

@ -89,5 +89,3 @@ to use the `include_all_active` parameter:
'msg':'User not authorized for this query' 'msg':'User not authorized for this query'
} }
``` ```
{!invalid-api-key-json-response.md!}

View File

@ -154,5 +154,3 @@ A typical successful JSON response may look like:
'result':'success' 'result':'success'
} }
``` ```
{!invalid-api-key-json-response.md!}

View File

@ -184,5 +184,3 @@ A typical successful JSON response may look like:
] ]
} }
``` ```
{!invalid-api-key-json-response.md!}

View File

@ -70,5 +70,3 @@ The rest of the return values are quite self-descriptive.
A typical successful JSON response may look like: A typical successful JSON response may look like:
{generate_code_example|get-profile|fixture} {generate_code_example|get-profile|fixture}
{!invalid-api-key-json-response.md!}

View File

@ -89,5 +89,3 @@ not provided:
"code":"REQUEST_VARIABLE_MISSING" "code":"REQUEST_VARIABLE_MISSING"
} }
``` ```
{!invalid-api-key-json-response.md!}

View File

@ -87,5 +87,3 @@ This request takes no arguments.
A typical successful JSON response may look like: A typical successful JSON response may look like:
{generate_code_example|get-subscribed-streams|fixture} {generate_code_example|get-subscribed-streams|fixture}
{!invalid-api-key-json-response.md!}

View File

@ -99,5 +99,3 @@ address is invalid:
'result':'error' 'result':'error'
} }
``` ```
{!invalid-api-key-json-response.md!}

View File

@ -100,5 +100,3 @@ A typical successful JSON response may look like:
'msg':'' 'msg':''
} }
``` ```
{!invalid-api-key-json-response.md!}

View File

@ -99,5 +99,3 @@ that doesn't exist:
"result":"error" "result":"error"
} }
``` ```
{!invalid-api-key-json-response.md!}

View File

@ -81,5 +81,3 @@ is not supplied:
'var_name':'content' 'var_name':'content'
} }
``` ```
{!invalid-api-key-json-response.md!}

View File

@ -44,3 +44,7 @@
* [Register a queue](/api/register-queue) * [Register a queue](/api/register-queue)
* [Get events from queue](/api/get-events-from-queue) * [Get events from queue](/api/get-events-from-queue)
* [Delete a queue](/api/delete-queue) * [Delete a queue](/api/delete-queue)
#### Common Errors
* [Example payloads](/api/common-error-payloads)

View File

@ -111,5 +111,3 @@ A typical failed JSON response for when the target stream does not exist:
'result':'error' 'result':'error'
} }
``` ```
{!invalid-api-key-json-response.md!}

View File

@ -87,5 +87,3 @@ edit a particular message:
'msg':"You don't have permission to edit this message" 'msg':"You don't have permission to edit this message"
} }
``` ```
{!invalid-api-key-json-response.md!}

View File

@ -1,8 +0,0 @@
A typical failed JSON response for when the API key is invalid:
```
{
'msg':'Invalid API key',
'result':'error'
}
```

View File

@ -14,7 +14,7 @@ os.chdir(ZULIP_PATH)
from zulip import Client from zulip import Client
from tools.lib.test_server import test_server_running from tools.lib.test_server import test_server_running
from zerver.lib.api_test_helpers import test_the_api from zerver.lib.api_test_helpers import test_the_api, test_invalid_api_key
os.environ['DJANGO_SETTINGS_MODULE'] = 'zproject.test_settings' os.environ['DJANGO_SETTINGS_MODULE'] = 'zproject.test_settings'
django.setup() django.setup()
@ -35,4 +35,13 @@ with test_server_running(external_host='zulipdev.com:9981'):
print("Running API tests...") print("Running API tests...")
test_the_api(client) test_the_api(client)
# Test error payloads
client = Client(
email=email,
api_key='abcedrsdfd',
site=site
)
test_invalid_api_key(client)
print("API tests passed!") print("API tests passed!")

View File

@ -279,6 +279,13 @@ def update_message(client, message_id):
assert result['result'] == 'success' assert result['result'] == 'success'
assert result['raw_content'] == request['content'] assert result['raw_content'] == request['content']
def test_invalid_api_key(client_with_invalid_key):
# type: (Client) -> None
result = client_with_invalid_key.list_subscriptions()
fixture = FIXTURES['invalid-api-key']
test_against_fixture(result, fixture)
TEST_FUNCTIONS = { TEST_FUNCTIONS = {
'render-message': render_message, 'render-message': render_message,
'stream-message': stream_message, 'stream-message': stream_message,
@ -343,5 +350,3 @@ def test_the_api(client):
test_users(client) test_users(client)
test_streams(client) test_streams(client)
test_messages(client) test_messages(client)
# print(dir(client))