diff --git a/docs/topics/testing/advanced.txt b/docs/topics/testing/advanced.txt index cdcbc444371f..2b2f35fdc378 100644 --- a/docs/topics/testing/advanced.txt +++ b/docs/topics/testing/advanced.txt @@ -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 ========================= diff --git a/docs/topics/testing/tools.txt b/docs/topics/testing/tools.txt index 27692d313dd9..81baca4f3f44 100644 --- a/docs/topics/testing/tools.txt +++ b/docs/topics/testing/tools.txt @@ -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