Improved async request factory and client docs.

This commit is contained in:
David Wobrock 2022-11-10 09:29:49 +01:00 committed by Mariusz Felisiak
parent d6fbfea08d
commit 0931d5b087
2 changed files with 10 additions and 1 deletions

View File

@ -70,6 +70,8 @@ The following is a unit test using the request factory::
AsyncRequestFactory
-------------------
.. class:: AsyncRequestFactory
``RequestFactory`` creates WSGI-like requests. If you want to create ASGI-like
requests, including having a correct ASGI ``scope``, you can instead use
``django.test.AsyncRequestFactory``.
@ -78,6 +80,9 @@ This class is directly API-compatible with ``RequestFactory``, with the only
difference being that it returns ``ASGIRequest`` instances rather than
``WSGIRequest`` instances. All of its methods are still synchronous callables.
Arbitrary keyword arguments in ``defaults`` are added directly into the ASGI
scope.
Testing class-based views
=========================

View File

@ -34,7 +34,7 @@ short:
* Use Django's test client to establish that the correct template is being
rendered and that the template is passed the correct context data.
* Use :class:`~django.test.RequestFactory` to test view functions directly,
* Use :class:`~django.test.RequestFactory` to test view functions directly,
bypassing the routing and middleware layers.
* Use in-browser frameworks like Selenium_ to test *rendered* HTML and the
@ -1905,9 +1905,13 @@ If you are testing from an asynchronous function, you must also use the
asynchronous test client. This is available as ``django.test.AsyncClient``,
or as ``self.async_client`` on any test.
.. class:: AsyncClient(enforce_csrf_checks=False, raise_request_exception=True, **defaults)
``AsyncClient`` has the same methods and signatures as the synchronous (normal)
test client, with two exceptions:
* In the initialization, arbitrary keyword arguments in ``defaults`` are added
directly into the ASGI scope.
* The ``follow`` parameter is not supported.
* Headers passed as ``extra`` keyword arguments should not have the ``HTTP_``
prefix required by the synchronous client (see :meth:`Client.get`). For