Loading django/test/client.py +6 −7 Original line number Diff line number Diff line Loading @@ -83,10 +83,9 @@ def closing_iterator_wrapper(iterable, close): class ClientHandler(BaseHandler): """ A HTTP Handler that can be used for testing purposes. Uses the WSGI interface to compose requests, but returns the raw HttpResponse object with the originating WSGIRequest attached to its ``request_instance`` attribute. A HTTP Handler that can be used for testing purposes. Uses the WSGI interface to compose requests, but returns the raw HttpResponse object with the originating WSGIRequest attached to its ``wsgi_request`` attribute. """ def __init__(self, enforce_csrf_checks=True, *args, **kwargs): self.enforce_csrf_checks = enforce_csrf_checks Loading @@ -112,7 +111,7 @@ class ClientHandler(BaseHandler): response = self.get_response(request) # Attach the originating request to the response so that it could be # later retrieved. response.request_instance = request response.wsgi_request = request # We're emulating a WSGI server; we must call the close method # on completion. Loading Loading @@ -555,7 +554,7 @@ class Client(RequestFactory): engine = import_module(settings.SESSION_ENGINE) # Create a fake request that goes through request middleware request = self.request().request_instance request = self.request().wsgi_request if self.session: request.session = self.session Loading Loading @@ -589,7 +588,7 @@ class Client(RequestFactory): Causes the authenticated user to be logged out. """ # Create a fake request that goes through request middleware request = self.request().request_instance request = self.request().wsgi_request engine = import_module(settings.SESSION_ENGINE) UserModel = get_user_model() Loading docs/releases/1.7.txt +3 −0 Original line number Diff line number Diff line Loading @@ -579,6 +579,9 @@ Tests * :meth:`~django.test.TransactionTestCase.assertNumQueries` now prints out the list of executed queries if the assertion fails. * The ``WSGIRequest`` instance generated by the test handler is now attached to the :attr:`django.test.Response.wsgi_request` attribute. Validators ^^^^^^^^^^ Loading docs/topics/testing/tools.txt +7 −0 Original line number Diff line number Diff line Loading @@ -427,6 +427,13 @@ Specifically, a ``Response`` object has the following attributes: The request data that stimulated the response. .. attribute:: wsgi_request .. versionadded:: 1.7 The ``WSGIRequest`` instance generated by the test handler that generated the response. .. attribute:: status_code The HTTP status of the response, as an integer. See Loading tests/test_client/tests.py +14 −0 Original line number Diff line number Diff line Loading @@ -84,6 +84,20 @@ class ClientTest(TestCase): self.assertEqual(response['X-DJANGO-TEST'], 'Slartibartfast') def test_response_attached_request(self): """ Check that the returned response has a ``request`` attribute with the originating environ dict and a ``wsgi_request`` with the originating ``WSGIRequest`` instance. """ response = self.client.get("/test_client/header_view/") self.assertTrue(hasattr(response, 'request')) self.assertTrue(hasattr(response, 'wsgi_request')) for key, value in response.request.items(): self.assertIn(key, response.wsgi_request.environ) self.assertEqual(response.wsgi_request.environ[key], value) def test_raw_post(self): "POST raw data (with a content type) to a view" test_doc = """<?xml version="1.0" encoding="utf-8"?><library><book><title>Blink</title><author>Malcolm Gladwell</author></book></library>""" Loading Loading
django/test/client.py +6 −7 Original line number Diff line number Diff line Loading @@ -83,10 +83,9 @@ def closing_iterator_wrapper(iterable, close): class ClientHandler(BaseHandler): """ A HTTP Handler that can be used for testing purposes. Uses the WSGI interface to compose requests, but returns the raw HttpResponse object with the originating WSGIRequest attached to its ``request_instance`` attribute. A HTTP Handler that can be used for testing purposes. Uses the WSGI interface to compose requests, but returns the raw HttpResponse object with the originating WSGIRequest attached to its ``wsgi_request`` attribute. """ def __init__(self, enforce_csrf_checks=True, *args, **kwargs): self.enforce_csrf_checks = enforce_csrf_checks Loading @@ -112,7 +111,7 @@ class ClientHandler(BaseHandler): response = self.get_response(request) # Attach the originating request to the response so that it could be # later retrieved. response.request_instance = request response.wsgi_request = request # We're emulating a WSGI server; we must call the close method # on completion. Loading Loading @@ -555,7 +554,7 @@ class Client(RequestFactory): engine = import_module(settings.SESSION_ENGINE) # Create a fake request that goes through request middleware request = self.request().request_instance request = self.request().wsgi_request if self.session: request.session = self.session Loading Loading @@ -589,7 +588,7 @@ class Client(RequestFactory): Causes the authenticated user to be logged out. """ # Create a fake request that goes through request middleware request = self.request().request_instance request = self.request().wsgi_request engine = import_module(settings.SESSION_ENGINE) UserModel = get_user_model() Loading
docs/releases/1.7.txt +3 −0 Original line number Diff line number Diff line Loading @@ -579,6 +579,9 @@ Tests * :meth:`~django.test.TransactionTestCase.assertNumQueries` now prints out the list of executed queries if the assertion fails. * The ``WSGIRequest`` instance generated by the test handler is now attached to the :attr:`django.test.Response.wsgi_request` attribute. Validators ^^^^^^^^^^ Loading
docs/topics/testing/tools.txt +7 −0 Original line number Diff line number Diff line Loading @@ -427,6 +427,13 @@ Specifically, a ``Response`` object has the following attributes: The request data that stimulated the response. .. attribute:: wsgi_request .. versionadded:: 1.7 The ``WSGIRequest`` instance generated by the test handler that generated the response. .. attribute:: status_code The HTTP status of the response, as an integer. See Loading
tests/test_client/tests.py +14 −0 Original line number Diff line number Diff line Loading @@ -84,6 +84,20 @@ class ClientTest(TestCase): self.assertEqual(response['X-DJANGO-TEST'], 'Slartibartfast') def test_response_attached_request(self): """ Check that the returned response has a ``request`` attribute with the originating environ dict and a ``wsgi_request`` with the originating ``WSGIRequest`` instance. """ response = self.client.get("/test_client/header_view/") self.assertTrue(hasattr(response, 'request')) self.assertTrue(hasattr(response, 'wsgi_request')) for key, value in response.request.items(): self.assertIn(key, response.wsgi_request.environ) self.assertEqual(response.wsgi_request.environ[key], value) def test_raw_post(self): "POST raw data (with a content type) to a view" test_doc = """<?xml version="1.0" encoding="utf-8"?><library><book><title>Blink</title><author>Malcolm Gladwell</author></book></library>""" Loading