Fixed #20237 (again) Allowed binary parameter to assertContains
This commit is contained in:
parent
8fc68af9c0
commit
b04fd579d5
|
@ -622,6 +622,9 @@ class TransactionTestCase(SimpleTestCase):
|
||||||
if not isinstance(text, bytes) or html:
|
if not isinstance(text, bytes) or html:
|
||||||
text = force_text(text, encoding=response._charset)
|
text = force_text(text, encoding=response._charset)
|
||||||
content = content.decode(response._charset)
|
content = content.decode(response._charset)
|
||||||
|
text_repr = "'%s'" % text
|
||||||
|
else:
|
||||||
|
text_repr = repr(text)
|
||||||
if html:
|
if html:
|
||||||
content = assert_and_parse_html(self, content, None,
|
content = assert_and_parse_html(self, content, None,
|
||||||
"Response's content is not valid HTML:")
|
"Response's content is not valid HTML:")
|
||||||
|
@ -630,11 +633,11 @@ class TransactionTestCase(SimpleTestCase):
|
||||||
real_count = content.count(text)
|
real_count = content.count(text)
|
||||||
if count is not None:
|
if count is not None:
|
||||||
self.assertEqual(real_count, count,
|
self.assertEqual(real_count, count,
|
||||||
msg_prefix + "Found %d instances of '%s' in response"
|
msg_prefix + "Found %d instances of %s in response"
|
||||||
" (expected %d)" % (real_count, text, count))
|
" (expected %d)" % (real_count, text_repr, count))
|
||||||
else:
|
else:
|
||||||
self.assertTrue(real_count != 0,
|
self.assertTrue(real_count != 0,
|
||||||
msg_prefix + "Couldn't find '%s' in response" % text)
|
msg_prefix + "Couldn't find %s in response" % text_repr)
|
||||||
|
|
||||||
def assertNotContains(self, response, text, status_code=200,
|
def assertNotContains(self, response, text, status_code=200,
|
||||||
msg_prefix='', html=False):
|
msg_prefix='', html=False):
|
||||||
|
@ -661,13 +664,16 @@ class TransactionTestCase(SimpleTestCase):
|
||||||
if not isinstance(text, bytes) or html:
|
if not isinstance(text, bytes) or html:
|
||||||
text = force_text(text, encoding=response._charset)
|
text = force_text(text, encoding=response._charset)
|
||||||
content = content.decode(response._charset)
|
content = content.decode(response._charset)
|
||||||
|
text_repr = "'%s'" % text
|
||||||
|
else:
|
||||||
|
text_repr = repr(text)
|
||||||
if html:
|
if html:
|
||||||
content = assert_and_parse_html(self, content, None,
|
content = assert_and_parse_html(self, content, None,
|
||||||
'Response\'s content is not valid HTML:')
|
'Response\'s content is not valid HTML:')
|
||||||
text = assert_and_parse_html(self, text, None,
|
text = assert_and_parse_html(self, text, None,
|
||||||
'Second argument is not valid HTML:')
|
'Second argument is not valid HTML:')
|
||||||
self.assertEqual(content.count(text), 0,
|
self.assertEqual(content.count(text), 0,
|
||||||
msg_prefix + "Response should not contain '%s'" % text)
|
msg_prefix + "Response should not contain %s" % text_repr)
|
||||||
|
|
||||||
def assertFormError(self, response, form, field, errors, msg_prefix=''):
|
def assertFormError(self, response, form, field, errors, msg_prefix=''):
|
||||||
"""
|
"""
|
||||||
|
|
|
@ -133,10 +133,15 @@ class AssertContainsTests(TestCase):
|
||||||
|
|
||||||
def test_binary_contains(self):
|
def test_binary_contains(self):
|
||||||
r = self.client.get('/test_client_regress/check_binary/')
|
r = self.client.get('/test_client_regress/check_binary/')
|
||||||
self.assertContains(r, b'PDF document')
|
self.assertContains(r, b'%PDF-1.4\r\n%\x93\x8c\x8b\x9e')
|
||||||
with self.assertRaises(AssertionError):
|
with self.assertRaises(AssertionError):
|
||||||
self.assertContains(r, b'PDF document', count=2)
|
self.assertContains(r, b'%PDF-1.4\r\n%\x93\x8c\x8b\x9e', count=2)
|
||||||
self.assertNotContains(r, b'ODF document')
|
|
||||||
|
def test_binary_not_contains(self):
|
||||||
|
r = self.client.get('/test_client_regress/check_binary/')
|
||||||
|
self.assertNotContains(r, b'%ODF-1.4\r\n%\x93\x8c\x8b\x9e')
|
||||||
|
with self.assertRaises(AssertionError):
|
||||||
|
self.assertNotContains(r, b'%PDF-1.4\r\n%\x93\x8c\x8b\x9e')
|
||||||
|
|
||||||
def test_nontext_contains(self):
|
def test_nontext_contains(self):
|
||||||
r = self.client.get('/test_client_regress/no_template_view/')
|
r = self.client.get('/test_client_regress/no_template_view/')
|
||||||
|
|
Loading…
Reference in New Issue