Loading django/test/testcases.py +9 −4 Original line number Diff line number Diff line Loading @@ -614,11 +614,13 @@ class TransactionTestCase(SimpleTestCase): self.assertEqual(response.status_code, status_code, msg_prefix + "Couldn't retrieve content: Response code was %d" " (expected %d)" % (response.status_code, status_code)) text = force_text(text, encoding=response._charset) if response.streaming: content = b''.join(response.streaming_content) else: content = response.content if not isinstance(text, bytes) or html: text = force_text(text, encoding=response._charset) content = content.decode(response._charset) if html: content = assert_and_parse_html(self, content, None, Loading Loading @@ -654,8 +656,11 @@ class TransactionTestCase(SimpleTestCase): self.assertEqual(response.status_code, status_code, msg_prefix + "Couldn't retrieve content: Response code was %d" " (expected %d)" % (response.status_code, status_code)) content = response.content if not isinstance(text, bytes) or html: text = force_text(text, encoding=response._charset) content = response.content.decode(response._charset) content = content.decode(response._charset) if html: content = assert_and_parse_html(self, content, None, 'Response\'s content is not valid HTML:') Loading tests/test_client_regress/tests.py +7 −0 Original line number Diff line number Diff line Loading @@ -131,6 +131,13 @@ class AssertContainsTests(TestCase): self.assertNotContains(r, 'はたけ') self.assertNotContains(r, b'\xe3\x81\xaf\xe3\x81\x9f\xe3\x81\x91'.decode('utf-8')) def test_binary_contains(self): r = self.client.get('/test_client_regress/check_binary/') self.assertContains(r, b'PDF document') with self.assertRaises(AssertionError): self.assertContains(r, b'PDF document', count=2) self.assertNotContains(r, b'ODF document') def test_nontext_contains(self): r = self.client.get('/test_client_regress/no_template_view/') self.assertContains(r, ugettext_lazy('once')) Loading tests/test_client_regress/urls.py +1 −0 Original line number Diff line number Diff line Loading @@ -28,6 +28,7 @@ urlpatterns = patterns('', (r'^check_session/$', views.check_session_view), (r'^request_methods/$', views.request_methods_view), (r'^check_unicode/$', views.return_unicode), (r'^check_binary/$', views.return_undecodable_binary), (r'^parse_unicode_json/$', views.return_json_file), (r'^check_headers/$', views.check_headers), (r'^check_headers_redirect/$', RedirectView.as_view(url='/test_client_regress/check_headers/')), Loading tests/test_client_regress/views.py +5 −0 Original line number Diff line number Diff line Loading @@ -70,6 +70,11 @@ def request_methods_view(request): def return_unicode(request): return render_to_response('unicode.html') def return_undecodable_binary(request): return HttpResponse( b'%PDF-1.4\r\n%\x93\x8c\x8b\x9e ReportLab Generated PDF document http://www.reportlab.com' ) def return_json_file(request): "A view that parses and returns a JSON string as a file." match = CONTENT_TYPE_RE.match(request.META['CONTENT_TYPE']) Loading Loading
django/test/testcases.py +9 −4 Original line number Diff line number Diff line Loading @@ -614,11 +614,13 @@ class TransactionTestCase(SimpleTestCase): self.assertEqual(response.status_code, status_code, msg_prefix + "Couldn't retrieve content: Response code was %d" " (expected %d)" % (response.status_code, status_code)) text = force_text(text, encoding=response._charset) if response.streaming: content = b''.join(response.streaming_content) else: content = response.content if not isinstance(text, bytes) or html: text = force_text(text, encoding=response._charset) content = content.decode(response._charset) if html: content = assert_and_parse_html(self, content, None, Loading Loading @@ -654,8 +656,11 @@ class TransactionTestCase(SimpleTestCase): self.assertEqual(response.status_code, status_code, msg_prefix + "Couldn't retrieve content: Response code was %d" " (expected %d)" % (response.status_code, status_code)) content = response.content if not isinstance(text, bytes) or html: text = force_text(text, encoding=response._charset) content = response.content.decode(response._charset) content = content.decode(response._charset) if html: content = assert_and_parse_html(self, content, None, 'Response\'s content is not valid HTML:') Loading
tests/test_client_regress/tests.py +7 −0 Original line number Diff line number Diff line Loading @@ -131,6 +131,13 @@ class AssertContainsTests(TestCase): self.assertNotContains(r, 'はたけ') self.assertNotContains(r, b'\xe3\x81\xaf\xe3\x81\x9f\xe3\x81\x91'.decode('utf-8')) def test_binary_contains(self): r = self.client.get('/test_client_regress/check_binary/') self.assertContains(r, b'PDF document') with self.assertRaises(AssertionError): self.assertContains(r, b'PDF document', count=2) self.assertNotContains(r, b'ODF document') def test_nontext_contains(self): r = self.client.get('/test_client_regress/no_template_view/') self.assertContains(r, ugettext_lazy('once')) Loading
tests/test_client_regress/urls.py +1 −0 Original line number Diff line number Diff line Loading @@ -28,6 +28,7 @@ urlpatterns = patterns('', (r'^check_session/$', views.check_session_view), (r'^request_methods/$', views.request_methods_view), (r'^check_unicode/$', views.return_unicode), (r'^check_binary/$', views.return_undecodable_binary), (r'^parse_unicode_json/$', views.return_json_file), (r'^check_headers/$', views.check_headers), (r'^check_headers_redirect/$', RedirectView.as_view(url='/test_client_regress/check_headers/')), Loading
tests/test_client_regress/views.py +5 −0 Original line number Diff line number Diff line Loading @@ -70,6 +70,11 @@ def request_methods_view(request): def return_unicode(request): return render_to_response('unicode.html') def return_undecodable_binary(request): return HttpResponse( b'%PDF-1.4\r\n%\x93\x8c\x8b\x9e ReportLab Generated PDF document http://www.reportlab.com' ) def return_json_file(request): "A view that parses and returns a JSON string as a file." match = CONTENT_TYPE_RE.match(request.META['CONTENT_TYPE']) Loading