Commit 1563b897 authored by Aymeric Augustin's avatar Aymeric Augustin
Browse files

Fixed #24685 -- Fixed check for template name unicity.

Thanks Preston Timmons for the report.
parent db0a0c4b
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -50,6 +50,7 @@ class EngineHandler(object):
            ]

        templates = OrderedDict()
        backend_names = []
        for tpl in self._templates:
            tpl = tpl.copy()
            try:
@@ -68,8 +69,9 @@ class EngineHandler(object):
            tpl.setdefault('OPTIONS', {})

            templates[tpl['NAME']] = tpl
            backend_names.append(tpl['NAME'])

        counts = Counter(list(templates))
        counts = Counter(backend_names)
        duplicates = [alias for alias, count in counts.most_common() if count > 1]
        if duplicates:
            raise ImproperlyConfigured(
+9 −0
Original line number Diff line number Diff line
@@ -35,3 +35,12 @@ class TemplateStringsTests(SimpleTestCase):
            engines.all()
        with self.assertRaises(ImproperlyConfigured):
            engines.all()

    @override_settings(TEMPLATES=[{
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
    }, {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
    }])
    def test_backend_names_must_be_unique(self):
        with self.assertRaises(ImproperlyConfigured):
            engines.all()