Commit 229488c8 authored by Ahmed Mohamed's avatar Ahmed Mohamed Committed by Tim Graham
Browse files

Fixed #26109 -- Raised a helpful error if loader.select_tamplate() is passed a string.

parent 275d11fb
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -33,6 +33,13 @@ def select_template(template_name_list, using=None):

    Raises TemplateDoesNotExist if no such template exists.
    """
    if isinstance(template_name_list, six.string_types):
        raise TypeError(
            'select_template() takes an iterable of template names but got a '
            'string: %r. Use get_template() if you want to load a single '
            'template by name.' % template_name_list
        )

    chain = []
    engines = _engine_list(using)
    for template_name in template_name_list:
+9 −0
Original line number Diff line number Diff line
@@ -60,6 +60,15 @@ class TemplateLoaderTests(SimpleTestCase):
        with self.assertRaises(TemplateDoesNotExist):
            select_template([])

    def test_select_template_string(self):
        with self.assertRaisesMessage(
            TypeError,
            "select_template() takes an iterable of template names but got a "
            "string: 'template_loader/hello.html'. Use get_template() if you "
            "want to load a single template by name."
        ):
            select_template('template_loader/hello.html')

    def test_select_template_not_found(self):
        with self.assertRaises(TemplateDoesNotExist) as e:
            select_template(["template_loader/unknown.html",