diff --git a/tests/template_tests/test_engine.py b/tests/template_tests/test_engine.py index 3b65dcb4f2..2ed28e6ce4 100644 --- a/tests/template_tests/test_engine.py +++ b/tests/template_tests/test_engine.py @@ -1,8 +1,9 @@ import os +from django.core.exceptions import ImproperlyConfigured from django.template import Context from django.template.engine import Engine -from django.test import SimpleTestCase +from django.test import SimpleTestCase, override_settings from .utils import ROOT, TEMPLATE_DIR @@ -21,6 +22,35 @@ class RenderToStringTest(SimpleTestCase): ) +class GetDefaultTests(SimpleTestCase): + + @override_settings(TEMPLATES=[]) + def test_no_engines_configured(self): + msg = 'No DjangoTemplates backend is configured.' + with self.assertRaisesMessage(ImproperlyConfigured, msg): + Engine.get_default() + + @override_settings(TEMPLATES=[{ + 'NAME': 'default', + 'BACKEND': 'django.template.backends.django.DjangoTemplates', + 'OPTIONS': {'file_charset': 'abc'}, + }]) + def test_single_engine_configured(self): + self.assertEqual(Engine.get_default().file_charset, 'abc') + + @override_settings(TEMPLATES=[{ + 'NAME': 'default', + 'BACKEND': 'django.template.backends.django.DjangoTemplates', + }, { + 'NAME': 'other', + 'BACKEND': 'django.template.backends.django.DjangoTemplates', + }]) + def test_multiple_engines_configured(self): + msg = 'Several DjangoTemplates backends are configured. You must select one explicitly.' + with self.assertRaisesMessage(ImproperlyConfigured, msg): + Engine.get_default() + + class LoaderTests(SimpleTestCase): def test_origin(self):