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)