mirror of
				https://github.com/zulip/zulip.git
				synced 2025-10-30 19:43:47 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			80 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			80 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
| #!/usr/bin/env python3
 | |
| import argparse
 | |
| 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_script import get_provisioning_status
 | |
| 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
 | |
| 
 | |
| usage = """test-js-with-casper [options]"""
 | |
| parser = argparse.ArgumentParser(usage)
 | |
| parser.add_argument('--force', dest='force',
 | |
|                     action="store_true",
 | |
|                     default=False, help='Run tests despite possible provisioning problems.')
 | |
| options = parser.parse_args()
 | |
| 
 | |
| if not options.force:
 | |
|     ok, msg = get_provisioning_status()
 | |
|     if not ok:
 | |
|         print(msg)
 | |
|         print('If you really know what you are doing, use --force to run anyway.')
 | |
|         sys.exit(1)
 | |
| 
 | |
| with test_server_running(force=options.force, 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!")
 |