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', 'john@example.com', '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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy