summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Graham <timograham@gmail.com>2013-06-09 15:07:23 -0400
committerTim Graham <timograham@gmail.com>2013-06-09 15:08:29 -0400
commit96c71d423db13825869a929b25d6b83dde67c170 (patch)
tree3a96d633c0467071bf242ab15f0aa220f5a87c53
parent4e94c84e50b960405d5708d8d9528c44c7dabe83 (diff)
Added runserver validation to detect if DEBUG=False and ALLOWED_HOSTS is empty.
Refs #19875.
-rw-r--r--django/core/management/commands/runserver.py5
-rw-r--r--tests/admin_scripts/tests.py15
2 files changed, 20 insertions, 0 deletions
diff --git a/django/core/management/commands/runserver.py b/django/core/management/commands/runserver.py
index c4a0b78cd4..f5a701cd23 100644
--- a/django/core/management/commands/runserver.py
+++ b/django/core/management/commands/runserver.py
@@ -40,6 +40,11 @@ class Command(BaseCommand):
return get_internal_wsgi_application()
def handle(self, addrport='', *args, **options):
+ from django.conf import settings
+
+ if not settings.DEBUG and not settings.ALLOWED_HOSTS:
+ raise CommandError('You must set settings.ALLOWED_HOSTS if DEBUG is False.')
+
self.use_ipv6 = options.get('use_ipv6')
if self.use_ipv6 and not socket.has_ipv6:
raise CommandError('Your Python does not support IPv6.')
diff --git a/tests/admin_scripts/tests.py b/tests/admin_scripts/tests.py
index 9e6b1f557b..df8a8becf6 100644
--- a/tests/admin_scripts/tests.py
+++ b/tests/admin_scripts/tests.py
@@ -1192,6 +1192,21 @@ class ManageRunserver(AdminScriptTestCase):
self.cmd.handle(addrport="deadbeef:7654")
self.assertServerSettings('deadbeef', '7654')
+class ManageRunserverEmptyAllowedHosts(AdminScriptTestCase):
+ def setUp(self):
+ self.write_settings('settings.py', sdict={
+ 'ALLOWED_HOSTS': [],
+ 'DEBUG': False,
+ })
+
+ def tearDown(self):
+ self.remove_settings('settings.py')
+
+ def test_empty_allowed_hosts_error(self):
+ out, err = self.run_manage(['runserver'])
+ self.assertNoOutput(out)
+ self.assertOutput(err, 'CommandError: You must set settings.ALLOWED_HOSTS if DEBUG is False.')
+
##########################################################################
# COMMAND PROCESSING TESTS