mirror of
https://github.com/zulip/zulip.git
synced 2025-11-04 22:13:26 +00:00
Allow running the dev server with the test database, on different ports
For use by frontend tests. (imported from commit c8f81b862963f00e5b5517ba05b2d1adcab6d78a)
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
#!/usr/bin/env python
|
||||
import optparse
|
||||
import subprocess
|
||||
import os
|
||||
from os import path
|
||||
@@ -6,7 +7,8 @@ from os import path
|
||||
from twisted.internet import reactor
|
||||
from twisted.web import proxy, server, resource
|
||||
|
||||
"""
|
||||
parser = optparse.OptionParser(r"""
|
||||
|
||||
Starts the app listening on localhost, for local development.
|
||||
|
||||
This script launches the Django and Tornado servers, then runs a reverse proxy
|
||||
@@ -17,16 +19,30 @@ which serves to both of them. After it's all up and running, browse to
|
||||
Note that, while runserver and runtornado have the usual auto-restarting
|
||||
behavior, the reverse proxy itself does *not* automatically restart on changes
|
||||
to this file.
|
||||
"""
|
||||
""")
|
||||
|
||||
proxy_port = 9991
|
||||
parser.add_option('--test',
|
||||
action='store_true', dest='test',
|
||||
help='Use the testing database and ports')
|
||||
|
||||
(options, args) = parser.parse_args()
|
||||
|
||||
base_port = 9991
|
||||
manage_args = ''
|
||||
if options.test:
|
||||
base_port = 9981
|
||||
manage_args = '--settings=humbug.test_settings'
|
||||
|
||||
proxy_port = base_port
|
||||
django_port = base_port+1
|
||||
tornado_port = base_port+2
|
||||
proxy_host = 'localhost:%d' % (proxy_port,)
|
||||
|
||||
os.chdir(path.join(path.dirname(__file__), '..'))
|
||||
|
||||
procs = []
|
||||
for cmd in ['python manage.py runserver localhost:9992',
|
||||
'python manage.py runtornado localhost:9993']:
|
||||
for cmd in ['python manage.py runserver %s localhost:%d' % (manage_args, django_port),
|
||||
'python manage.py runtornado %s localhost:%d' % (manage_args, tornado_port)]:
|
||||
procs.append(subprocess.Popen(cmd, shell=True))
|
||||
|
||||
class Resource(resource.Resource):
|
||||
@@ -34,9 +50,9 @@ class Resource(resource.Resource):
|
||||
request.requestHeaders.setRawHeaders('X-Forwarded-Host', [proxy_host])
|
||||
|
||||
if request.uri in ['/json/get_updates', '/api/v1/get_messages']:
|
||||
return proxy.ReverseProxyResource('localhost', 9993, '/'+name)
|
||||
return proxy.ReverseProxyResource('localhost', tornado_port, '/'+name)
|
||||
|
||||
return proxy.ReverseProxyResource('localhost', 9992, '/'+name)
|
||||
return proxy.ReverseProxyResource('localhost', django_port, '/'+name)
|
||||
|
||||
reactor.listenTCP(proxy_port, server.Site(Resource()), interface='127.0.0.1')
|
||||
|
||||
|
||||
Reference in New Issue
Block a user