File tree Expand file tree Collapse file tree 2 files changed +34
-0
lines changed Expand file tree Collapse file tree 2 files changed +34
-0
lines changed Original file line number Diff line number Diff line change @@ -105,6 +105,20 @@ This means that setting attributes directly on the request object may not always
105
105
request.user = user
106
106
response = view(request)
107
107
108
+ In case you want to test the request having a REST famework's ` Request ` you have to transform it by-hand before:
109
+
110
+ class DummyView(APIView):
111
+ ...
112
+
113
+ factory = APIRequestFactory()
114
+ request = factory.get('/', {'demo': 'test'})
115
+ DRF_request = DummyView().initialize_request(request)
116
+ assert DRF_request.query_params == {'demo': ['test']}
117
+
118
+ request = factory.post('/', {'example': 'test'})
119
+ DRF_request = DummyView().initialize_request(request)
120
+ assert DRF_request.data.get('example') == 'test'
121
+
108
122
---
109
123
110
124
## Forcing CSRF validation
Original file line number Diff line number Diff line change @@ -294,6 +294,26 @@ def test_explicitly_enforce_csrf_checks(self):
294
294
assert response .status_code == 403
295
295
assert response .data == expected
296
296
297
+ def test_transform_factory_django_request_to_drf_request (self ):
298
+ from rest_framework .views import APIView
299
+
300
+ factory = APIRequestFactory ()
301
+
302
+ class DummyView (APIView ):
303
+ ...
304
+
305
+ request = factory .get ('/' , {'demo' : 'test' })
306
+ DRF_request = DummyView ().initialize_request (request )
307
+ assert DRF_request .query_params == {'demo' : ['test' ]}
308
+ assert not hasattr (DRF_request , 'accepted_media_type' )
309
+
310
+ DummyView ().initial (DRF_request )
311
+ assert DRF_request .accepted_media_type == 'application/json'
312
+
313
+ request = factory .post ('/' , {'example' : 'test' })
314
+ DRF_request = DummyView ().initialize_request (request )
315
+ assert DRF_request .data .get ('example' ) == 'test'
316
+
297
317
def test_invalid_format (self ):
298
318
"""
299
319
Attempting to use a format that is not configured will raise an
You can’t perform that action at this time.
0 commit comments