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 @@ -102,6 +102,20 @@ This means that setting attributes directly on the request object may not always
102
102
request.user = user
103
103
response = view(request)
104
104
105
+ In case you want to test the request having a REST famework's ` Request ` you have to transform it by-hand before:
106
+
107
+ class DummyView(APIView):
108
+ ...
109
+
110
+ factory = APIRequestFactory()
111
+ request = factory.get('/', {'demo': 'test'})
112
+ DRF_request = DummyView().initialize_request(request)
113
+ assert DRF_request.query_params == {'demo': ['test']}
114
+
115
+ request = factory.post('/', {'example': 'test'})
116
+ DRF_request = DummyView().initialize_request(request)
117
+ assert DRF_request.data.get('example') == 'test'
118
+
105
119
---
106
120
107
121
## Forcing CSRF validation
Original file line number Diff line number Diff line change @@ -263,6 +263,26 @@ def test_explicitly_enforce_csrf_checks(self):
263
263
assert response .status_code == 403
264
264
assert response .data == expected
265
265
266
+ def test_transform_factory_django_request_to_drf_request (self ):
267
+ from rest_framework .views import APIView
268
+
269
+ factory = APIRequestFactory ()
270
+
271
+ class DummyView (APIView ):
272
+ ...
273
+
274
+ request = factory .get ('/' , {'demo' : 'test' })
275
+ DRF_request = DummyView ().initialize_request (request )
276
+ assert DRF_request .query_params == {'demo' : ['test' ]}
277
+ assert not hasattr (DRF_request , 'accepted_media_type' )
278
+
279
+ DummyView ().initial (DRF_request )
280
+ assert DRF_request .accepted_media_type == 'application/json'
281
+
282
+ request = factory .post ('/' , {'example' : 'test' })
283
+ DRF_request = DummyView ().initialize_request (request )
284
+ assert DRF_request .data .get ('example' ) == 'test'
285
+
266
286
def test_invalid_format (self ):
267
287
"""
268
288
Attempting to use a format that is not configured will raise an
You can’t perform that action at this time.
0 commit comments