diff --git a/humbug/settings.py b/humbug/settings.py index 2b2e2591b7..30cc292409 100644 --- a/humbug/settings.py +++ b/humbug/settings.py @@ -104,7 +104,8 @@ INITIAL_API_KEY_SALT = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx SHARED_SECRET = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' # Base URL of the Tornado server -# We set it to None when running tests or populate_db. +# We set it to None when running backend tests or populate_db. +# We override the port number when running frontend tests. TORNADO_SERVER = 'http://localhost:9993' # Make redirects work properly behind a reverse proxy diff --git a/humbug/test_settings.py b/humbug/test_settings.py index f2b102886f..9ad70d2798 100644 --- a/humbug/test_settings.py +++ b/humbug/test_settings.py @@ -4,3 +4,4 @@ DATABASES["default"] = {"NAME": "zephyr/tests/zephyrdb.test", "ENGINE": "django.db.backends.sqlite3", "OPTIONS": { "timeout": 20, },} +TORNADO_SERVER = 'http://localhost:9983' diff --git a/tools/run-dev.py b/tools/run-dev.py index 1564db0a8a..dd6451368a 100755 --- a/tools/run-dev.py +++ b/tools/run-dev.py @@ -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')