diff --git a/django/template/loader.py b/django/template/loader.py index e10533393d..418501713d 100644 --- a/django/template/loader.py +++ b/django/template/loader.py @@ -179,6 +179,8 @@ def render_to_string(template_name, dictionary=None, context_instance=None): def select_template(template_name_list): "Given a list of template names, returns the first that can be loaded." + if not template_name_list: + raise TemplateDoesNotExist("No template names provided") not_found = [] for template_name in template_name_list: try: diff --git a/tests/regressiontests/templates/loaders.py b/tests/regressiontests/templates/loaders.py index c2ae0bd1fc..45131bf265 100644 --- a/tests/regressiontests/templates/loaders.py +++ b/tests/regressiontests/templates/loaders.py @@ -143,5 +143,16 @@ class RenderToStringTest(unittest.TestCase): self.assertEqual(output, 'obj:after') self.assertEqual(context['obj'], 'before') + def test_empty_list(self): + self.assertRaisesRegexp(TemplateDoesNotExist, + 'No template names provided$', + loader.render_to_string, []) + + + def test_select_templates_from_empty_list(self): + self.assertRaisesRegexp(TemplateDoesNotExist, + 'No template names provided$', + loader.select_template, []) + if __name__ == "__main__": unittest.main()