zulip/tools/test-help-documentation

61 lines
2.1 KiB
Python
Executable File

#!/usr/bin/env python3
import argparse
import os
import sys
import subprocess
from typing import List
ZULIP_PATH = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
# check for the venv
from lib import sanity_check
sanity_check.check_venv(__file__)
parser = argparse.ArgumentParser()
parser.add_argument('--force', default=False,
action="store_true",
help='Run tests despite possible problems.')
parser.add_argument('--skip-external-links', default=False,
dest="skip_external_link_check",
action="store_true",
help='Skip checking of external links.')
options = parser.parse_args()
os.chdir(ZULIP_PATH)
sys.path.insert(0, ZULIP_PATH)
from tools.lib.test_server import test_server_running
os.makedirs('var/help-documentation', exist_ok=True)
LOG_FILE = 'var/help-documentation/server.log'
external_host = "localhost:9981"
extra_args = [] # type: List[str]
if options.skip_external_link_check:
extra_args = ['-a', 'skip_external=set']
with test_server_running(options.force, external_host, log_file=LOG_FILE,
dots=True, use_db=True):
ret_help_doc = subprocess.call(['scrapy', 'crawl_with_status'] + extra_args +
['help_documentation_crawler'],
cwd='tools/documentation_crawler')
ret_api_doc = subprocess.call(['scrapy', 'crawl_with_status'] + extra_args +
['api_documentation_crawler'],
cwd='tools/documentation_crawler')
ret_portico_doc = subprocess.call(['scrapy', 'crawl_with_status'] + extra_args +
['portico_documentation_crawler'],
cwd='tools/documentation_crawler')
if ret_help_doc != 0 or ret_api_doc != 0 or ret_portico_doc != 0:
print("\033[0;91m")
print("Failed")
print("\033[0m")
else:
print("\033[0;92m")
print("Passed!")
print("\033[0m")
sys.exit(ret_help_doc or ret_api_doc or ret_portico_doc)