summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--django/views/debug.py4
-rw-r--r--tests/view_tests/tests/test_debug.py13
2 files changed, 15 insertions, 2 deletions
diff --git a/django/views/debug.py b/django/views/debug.py
index 18e961aa55..cb3e8c7ec1 100644
--- a/django/views/debug.py
+++ b/django/views/debug.py
@@ -497,7 +497,7 @@ def technical_404_response(request, exception):
module = obj.__module__
caller = '%s.%s' % (module, caller)
- with Path(CURRENT_DIR, 'templates', 'technical_404.html').open() as fh:
+ with Path(CURRENT_DIR, 'templates', 'technical_404.html').open(encoding='utf-8') as fh:
t = DEBUG_ENGINE.from_string(fh.read())
c = Context({
'urlconf': urlconf,
@@ -514,7 +514,7 @@ def technical_404_response(request, exception):
def default_urlconf(request):
"""Create an empty URLconf 404 error response."""
- with Path(CURRENT_DIR, 'templates', 'default_urlconf.html').open() as fh:
+ with Path(CURRENT_DIR, 'templates', 'default_urlconf.html').open(encoding='utf-8') as fh:
t = DEBUG_ENGINE.from_string(fh.read())
c = Context({
'version': get_docs_version(),
diff --git a/tests/view_tests/tests/test_debug.py b/tests/view_tests/tests/test_debug.py
index 51b27bf361..a61e4b24ff 100644
--- a/tests/view_tests/tests/test_debug.py
+++ b/tests/view_tests/tests/test_debug.py
@@ -224,6 +224,19 @@ class DebugViewTests(SimpleTestCase):
status_code=404
)
+ def test_template_encoding(self):
+ """
+ The templates are loaded directly, not via a template loader, and
+ should be opened as utf-8 charset as is the default specified on
+ template engines.
+ """
+ with mock.patch.object(DebugPath, 'open') as m:
+ default_urlconf(None)
+ m.assert_called_once_with(encoding='utf-8')
+ m.reset_mock()
+ technical_404_response(mock.MagicMock(), mock.Mock())
+ m.assert_called_once_with(encoding='utf-8')
+
class DebugViewQueriesAllowedTests(SimpleTestCase):
# May need a query to initialize MySQL connection