zulip/zephyr/tests/frontend/run

41 lines
1017 B
Plaintext
Raw Normal View History

#!/usr/bin/env python
import subprocess
import requests
import time
import sys
import os
from os import path
os.chdir(path.join(path.dirname(__file__), '../../..'))
subprocess.check_call('zephyr/tests/generate-fixtures')
log = open('zephyr/tests/frontend/server.log', 'w')
# Run this not through the shell, so that we have the actual PID.
server = subprocess.Popen(('tools/run-dev.py', '--test'),
stdout=log, stderr=log)
def server_is_up():
try:
# We could get a 501 error if the reverse proxy is up but the Django app isn't.
return requests.get('http://localhost:9981/accounts/home').status_code == 200
except:
return False
ret = 1
try:
# Wait for the server to start up.
while not server_is_up():
print 'Waiting for test server'
time.sleep(0.1)
ret = subprocess.call(
'zephyr/tests/frontend/casperjs/bin/casperjs zephyr/tests/frontend/tests.js',
shell=True)
finally:
server.terminate()
sys.exit(ret)