diff --git a/django/test/utils.py b/django/test/utils.py index b24f2e8c80d..9d4cc46a989 100644 --- a/django/test/utils.py +++ b/django/test/utils.py @@ -131,7 +131,7 @@ def setup_test_environment(debug=None): saved_data.allowed_hosts = settings.ALLOWED_HOSTS # Add the default host of the test client. - settings.ALLOWED_HOSTS = settings.ALLOWED_HOSTS + ['testserver'] + settings.ALLOWED_HOSTS = list(settings.ALLOWED_HOSTS) + ['testserver'] saved_data.debug = settings.DEBUG settings.DEBUG = debug diff --git a/tests/test_utils/tests.py b/tests/test_utils/tests.py index 54b83f524b0..f118ec95653 100644 --- a/tests/test_utils/tests.py +++ b/tests/test_utils/tests.py @@ -5,6 +5,7 @@ import sys import unittest import warnings +from django.conf import settings from django.conf.urls import url from django.contrib.staticfiles.finders import get_finder, get_finders from django.contrib.staticfiles.storage import staticfiles_storage @@ -14,7 +15,7 @@ from django.forms import EmailField, IntegerField from django.http import HttpResponse from django.template.loader import render_to_string from django.test import ( - SimpleTestCase, TestCase, ignore_warnings, skipIfDBFeature, + SimpleTestCase, TestCase, ignore_warnings, mock, skipIfDBFeature, skipUnlessDBFeature, ) from django.test.html import HTMLParseError, parse_html @@ -885,6 +886,15 @@ class SetupTestEnvironmentTests(SimpleTestCase): with self.assertRaisesMessage(RuntimeError, "setup_test_environment() was already called"): setup_test_environment() + def test_allowed_hosts(self): + for type_ in (list, tuple): + allowed_hosts = type_('*') + with mock.patch('django.test.utils._TestState') as x: + del x.saved_data + with self.settings(ALLOWED_HOSTS=allowed_hosts): + setup_test_environment() + self.assertEqual(settings.ALLOWED_HOSTS, ['*', 'testserver']) + class OverrideSettingsTests(SimpleTestCase):