docs: Make get-raw-message use curl example system.

This commit is contained in:
Vishnu KS
2019-10-02 16:03:29 +05:30
committed by Tim Abbott
parent cb64fc8732
commit 9bc3594f75
2 changed files with 12 additions and 5 deletions

View File

@@ -18,10 +18,7 @@ UI).
{tab|curl} {tab|curl}
``` curl {generate_code_example(curl)|/messages/{message_id}:get|example}
curl -X GET {{ api_url }}/v1/messages/{msg_id} \
-u BOT_EMAIL_ADDRESS:BOT_API_KEY \
```
{end_tabs} {end_tabs}

View File

@@ -3,6 +3,7 @@ import json
import shlex import shlex
import subprocess import subprocess
import markdown import markdown
import os
from zulip import Client from zulip import Client
from zerver.lib.bugdown import api_code_examples from zerver.lib.bugdown import api_code_examples
@@ -15,6 +16,13 @@ whitelisted_files = [
"get-messages.md", "get-messages.md",
] ]
exclude_list = [
# The endpoint in these docs expect one or more param values that reflects the DB state.
# We currently get the example values from openapi specs and they don't refelect the
# state of the DB. This results in the curl request to fail.
'get-raw-message.md',
]
def test_generated_curl_examples_for_success(client: Client) -> None: def test_generated_curl_examples_for_success(client: Client) -> None:
authentication_line = "{}:{}".format(client.email, client.api_key) authentication_line = "{}:{}".format(client.email, client.api_key)
# A limited markdown engine that just processes the code example syntax. # A limited markdown engine that just processes the code example syntax.
@@ -23,13 +31,15 @@ def test_generated_curl_examples_for_success(client: Client) -> None:
api_url=realm.uri + "/api")]) api_url=realm.uri + "/api")])
for file_name in glob.glob("templates/zerver/api/*.md"): for file_name in glob.glob("templates/zerver/api/*.md"):
if os.path.basename(file_name) in exclude_list:
print("Skipping", file_name)
continue
documentation_lines = open(file_name, "r").readlines() documentation_lines = open(file_name, "r").readlines()
for line in documentation_lines: for line in documentation_lines:
# A typical example from the markdown source looks like this: # A typical example from the markdown source looks like this:
# {generate_code_example(curl, ...} # {generate_code_example(curl, ...}
if not line.startswith("{generate_code_example(curl"): if not line.startswith("{generate_code_example(curl"):
continue continue
# To do an end-to-end test on the documentation examples # To do an end-to-end test on the documentation examples
# that will be actually shown to users, we use the # that will be actually shown to users, we use the
# markdown rendering pipeline to compute the user-facing # markdown rendering pipeline to compute the user-facing