Added runserver validation to detect if DEBUG=False and ALLOWED_HOSTS is empty.
Refs #19875.
This commit is contained in:
parent
4e94c84e50
commit
96c71d423d
|
@ -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.')
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue