Skip to content

Commit 353fe1f

Browse files
D3XRyan P Kilby
authored andcommitted
Added a failing test for #5582
1 parent 2e5d4e9 commit 353fe1f

File tree

1 file changed

+28
-3
lines changed

1 file changed

+28
-3
lines changed

tests/test_middleware.py

Lines changed: 28 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,23 @@
44

55
from rest_framework.authentication import TokenAuthentication
66
from rest_framework.authtoken.models import Token
7+
from rest_framework.response import Response
78
from rest_framework.test import APITestCase
89
from rest_framework.views import APIView
910

11+
12+
class PostView(APIView):
13+
def post(self, request):
14+
return Response(data=request.data, status=200)
15+
16+
1017
urlpatterns = [
11-
url(r'^$', APIView.as_view(authentication_classes=(TokenAuthentication,))),
18+
url(r'^auth$', APIView.as_view(authentication_classes=(TokenAuthentication,))),
19+
url(r'^post$', PostView.as_view()),
1220
]
1321

1422

15-
class MyMiddleware(object):
23+
class RequestUserMiddleware(object):
1624
def __init__(self, get_response):
1725
self.get_response = get_response
1826

@@ -24,13 +32,30 @@ def __call__(self, request):
2432
return response
2533

2634

35+
class RequestPOSTMiddleware(object):
36+
def __init__(self, get_response):
37+
self.get_response = get_response
38+
39+
def __call__(self, request):
40+
request.body
41+
response = self.get_response(request)
42+
assert request.POST['foo'] == 'bar'
43+
44+
return response
45+
46+
2747
@override_settings(ROOT_URLCONF='tests.test_middleware')
2848
class TestMiddleware(APITestCase):
2949

30-
@override_settings(MIDDLEWARE=('tests.test_middleware.MyMiddleware',))
50+
@override_settings(MIDDLEWARE=('tests.test_middleware.RequestUserMiddleware',))
3151
def test_middleware_can_access_user_when_processing_response(self):
3252
user = User.objects.create_user('john', '[email protected]', 'password')
3353
key = 'abcd1234'
3454
Token.objects.create(key=key, user=user)
3555

3656
self.client.get('/auth', HTTP_AUTHORIZATION='Token %s' % key)
57+
58+
@override_settings(MIDDLEWARE=('tests.test_middleware.RequestPOSTMiddleware',))
59+
def test_middleware_can_access_request_post_when_processing_response(self):
60+
response = self.client.post('/post', {'foo': 'bar'})
61+
assert response.status_code == 200

0 commit comments

Comments
 (0)