Fixed #23300 -- Made assertTemplateUsed throw an error on responses not fetched using the test client.
Thanks zags for the report and bmispelon for the patch.
This commit is contained in:
parent
ca88aa34ad
commit
2d06e3155a
|
@ -518,6 +518,12 @@ class SimpleTestCase(unittest.TestCase):
|
||||||
if msg_prefix:
|
if msg_prefix:
|
||||||
msg_prefix += ": "
|
msg_prefix += ": "
|
||||||
|
|
||||||
|
if template_name is not None and response is not None and not hasattr(response, 'templates'):
|
||||||
|
raise ValueError(
|
||||||
|
"assertTemplateUsed() and assertTemplateNotUsed() are only "
|
||||||
|
"usable on responses fetched using the Django test Client."
|
||||||
|
)
|
||||||
|
|
||||||
if not hasattr(response, 'templates') or (response is None and template_name):
|
if not hasattr(response, 'templates') or (response is None and template_name):
|
||||||
if response:
|
if response:
|
||||||
template_name = response
|
template_name = response
|
||||||
|
|
|
@ -385,6 +385,18 @@ class AssertTemplateUsedContextManagerTests(TestCase):
|
||||||
with self.assertTemplateUsed('template_used/base.html'):
|
with self.assertTemplateUsed('template_used/base.html'):
|
||||||
render_to_string('template_used/alternative.html')
|
render_to_string('template_used/alternative.html')
|
||||||
|
|
||||||
|
def test_assert_used_on_http_response(self):
|
||||||
|
response = HttpResponse()
|
||||||
|
error_msg = (
|
||||||
|
'assertTemplateUsed() and assertTemplateNotUsed() are only '
|
||||||
|
'usable on responses fetched using the Django test Client.'
|
||||||
|
)
|
||||||
|
with self.assertRaisesMessage(ValueError, error_msg):
|
||||||
|
self.assertTemplateUsed(response, 'template.html')
|
||||||
|
|
||||||
|
with self.assertRaisesMessage(ValueError, error_msg):
|
||||||
|
self.assertTemplateNotUsed(response, 'template.html')
|
||||||
|
|
||||||
|
|
||||||
class HTMLEqualTests(TestCase):
|
class HTMLEqualTests(TestCase):
|
||||||
def test_html_parser(self):
|
def test_html_parser(self):
|
||||||
|
|
Loading…
Reference in New Issue