diff --git a/templates/zerver/api/fixtures.json b/templates/zerver/api/fixtures.json index d550bfcd28..72803547c2 100644 --- a/templates/zerver/api/fixtures.json +++ b/templates/zerver/api/fixtures.json @@ -228,5 +228,11 @@ ], "msg":"", "result":"success" + }, + "register-queue": { + "last_event_id":-1, + "msg":"", + "queue_id":"1517975029:0", + "result":"success" } } diff --git a/templates/zerver/api/register-queue.md b/templates/zerver/api/register-queue.md index 205a93d62f..9a5ff60865 100644 --- a/templates/zerver/api/register-queue.md +++ b/templates/zerver/api/register-queue.md @@ -31,23 +31,7 @@ curl {{ api_url }}/v1/register \
-``` -#!/usr/bin/env python - -import zulip - -# Download ~/zuliprc-dev from your dev server -client = zulip.Client(config_file="~/zuliprc-dev") - -# Register the queue -print(client.register()) - -# You may pass in one or more of the above arguments as keyword -# arguments, like so: -print(client.register( - event_types=['messages'] -)) -``` +{generate_code_example|register-queue|example}
@@ -92,11 +76,4 @@ zulip(config).then((client) => { A typical successful JSON response may look like: -``` -{ - 'last_event_id':-1, - 'queue_id':'1514938867:1', - 'result':'success', - 'msg':'' -} -``` +{generate_code_example|register-queue|fixture} diff --git a/zerver/lib/api_test_helpers.py b/zerver/lib/api_test_helpers.py index 5d05cd2e62..e71ecf6222 100644 --- a/zerver/lib/api_test_helpers.py +++ b/zerver/lib/api_test_helpers.py @@ -301,6 +301,32 @@ def update_message(client, message_id): assert result['result'] == 'success' assert result['raw_content'] == request['content'] +def register_queue(client): + # type: (Client) -> str + + # {code_example|start} + # Register the queue + result = client.register() + # {code_example|end} + + client.deregister(result['queue_id']) + fixture = FIXTURES['register-queue'] + test_against_fixture(result, fixture, check_if_equal=['msg', 'result'], + check_if_exists=['last_event_id', 'queue_id']) + + # {code_example|start} + # You may pass in one or more of the arguments documented below + # as keyword arguments, like so: + result = client.register( + event_types=['messages'] + ) + # {code_example|end} + + test_against_fixture(result, fixture, check_if_equal=['msg', 'result'], + check_if_exists=['last_event_id', 'queue_id']) + + return result['queue_id'] + def test_invalid_api_key(client_with_invalid_key): # type: (Client) -> None result = client_with_invalid_key.list_subscriptions() @@ -321,6 +347,7 @@ TEST_FUNCTIONS = { 'add-subscriptions': add_subscriptions, 'remove-subscriptions': remove_subscriptions, 'get-all-users': get_members, + 'register-queue': register_queue, } # SETUP METHODS FOLLOW @@ -366,6 +393,11 @@ def test_streams(client): get_subscribers(client) remove_subscriptions(client) +def test_queues(client): + # type: (Client) -> None + + register_queue(client) + def test_the_api(client): # type: (Client) -> None @@ -373,3 +405,4 @@ def test_the_api(client): test_users(client) test_streams(client) test_messages(client) + test_queues(client)