This commit is contained in:
Marcelo Galigniana 2025-04-10 15:59:32 +02:00 committed by GitHub
commit 4200eeede2
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 34 additions and 0 deletions

View File

@ -105,6 +105,20 @@ This means that setting attributes directly on the request object may not always
request.user = user
response = view(request)
In case you want to test the request having a REST famework's `Request` you have to transform it by-hand before:
class DummyView(APIView):
...
factory = APIRequestFactory()
request = factory.get('/', {'demo': 'test'})
DRF_request = DummyView().initialize_request(request)
assert DRF_request.query_params == {'demo': ['test']}
request = factory.post('/', {'example': 'test'})
DRF_request = DummyView().initialize_request(request)
assert DRF_request.data.get('example') == 'test'
---
## Forcing CSRF validation

View File

@ -294,6 +294,26 @@ class TestAPIRequestFactory(TestCase):
assert response.status_code == 403
assert response.data == expected
def test_transform_factory_django_request_to_drf_request(self):
from rest_framework.views import APIView
factory = APIRequestFactory()
class DummyView(APIView):
...
request = factory.get('/', {'demo': 'test'})
DRF_request = DummyView().initialize_request(request)
assert DRF_request.query_params == {'demo': ['test']}
assert not hasattr(DRF_request, 'accepted_media_type')
DummyView().initial(DRF_request)
assert DRF_request.accepted_media_type == 'application/json'
request = factory.post('/', {'example': 'test'})
DRF_request = DummyView().initialize_request(request)
assert DRF_request.data.get('example') == 'test'
def test_invalid_format(self):
"""
Attempting to use a format that is not configured will raise an