#!/usr/bin/env python3 import os import sys # check for the venv from lib import sanity_check sanity_check.check_venv(__file__) import django ZULIP_PATH = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) sys.path.insert(0, ZULIP_PATH) os.chdir(ZULIP_PATH) from zulip import Client from tools.lib.test_server import test_server_running from zerver.lib.api_test_helpers import test_the_api, test_invalid_api_key, \ test_update_message_edit_permission_error, \ test_user_not_authorized_error, test_authorization_errors_fatal os.environ['DJANGO_SETTINGS_MODULE'] = 'zproject.test_settings' django.setup() from zerver.models import get_user, get_realm with test_server_running(external_host='zulipdev.com:9981'): email = 'iago@zulip.com' # Iago is an admin realm = get_realm("zulip") api_key = get_user(email, realm).api_key site = 'http://zulip.zulipdev.com:9981' client = Client( email=email, api_key=api_key, site=site) print("Running API tests...") test_the_api(client) email = 'newbie@zulip.com' # newbie is not an admin realm = get_realm("zulip") api_key = get_user(email, realm).api_key site = 'http://zulip.zulipdev.com:9981' nonadmin_client = Client( email=email, api_key=api_key, site=site ) # Run tests that require non-admin client test_update_message_edit_permission_error(client, nonadmin_client) test_user_not_authorized_error(nonadmin_client) test_authorization_errors_fatal(client, nonadmin_client) # Test error payloads client = Client( email=email, api_key='abcedrsdfd', site=site ) test_invalid_api_key(client) print("API tests passed!")