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:
|
||||
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 response:
|
||||
template_name = response
|
||||
|
|
|
@ -385,6 +385,18 @@ class AssertTemplateUsedContextManagerTests(TestCase):
|
|||
with self.assertTemplateUsed('template_used/base.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):
|
||||
def test_html_parser(self):
|
||||
|
|
Loading…
Reference in New Issue