File tree Expand file tree Collapse file tree 3 files changed +37
-0
lines changed
tests/integrations/django Expand file tree Collapse file tree 3 files changed +37
-0
lines changed Original file line number Diff line number Diff line change 3535 path ("classbased" , views .ClassBasedView .as_view (), name = "classbased" ),
3636 path ("post-echo" , views .post_echo , name = "post_echo" ),
3737 path ("template-exc" , views .template_exc , name = "template_exc" ),
38+ path (
39+ "permission-denied-exc" ,
40+ views .permission_denied_exc ,
41+ name = "permission_denied_exc" ,
42+ ),
3843]
3944
4045
5055 )
5156 )
5257 urlpatterns .append (path ("rest-hello" , views .rest_hello , name = "rest_hello" ))
58+ urlpatterns .append (
59+ path (
60+ "rest-permission-denied-exc" ,
61+ views .rest_permission_denied_exc ,
62+ name = "rest_permission_denied_exc" ,
63+ )
64+ )
5365except AttributeError :
5466 pass
5567
Original file line number Diff line number Diff line change 11from django .contrib .auth import login
22from django .contrib .auth .models import User
3+ from django .core .exceptions import PermissionDenied
34from django .http import HttpResponse , HttpResponseServerError , HttpResponseNotFound
45from django .shortcuts import render
56from django .views .generic import ListView
@@ -20,6 +21,10 @@ def rest_framework_read_body_and_exc(request):
2021 def rest_hello (request ):
2122 return HttpResponse ("ok" )
2223
24+ @api_view (["GET" ])
25+ def rest_permission_denied_exc (request ):
26+ raise PermissionDenied ("bye" )
27+
2328
2429except ImportError :
2530 pass
@@ -73,3 +78,7 @@ def handler404(*args, **kwargs):
7378
7479def template_exc (request , * args , ** kwargs ):
7580 return render (request , "error.html" )
81+
82+
83+ def permission_denied_exc (* args , ** kwargs ):
84+ raise PermissionDenied ("bye" )
Original file line number Diff line number Diff line change @@ -479,3 +479,19 @@ def test_rest_framework_basic(
479479 assert event ["exception" ]["values" ][0 ]["mechanism" ]["type" ] == "django"
480480
481481 assert event ["request" ] == event_request (route )
482+
483+
484+ @pytest .mark .parametrize (
485+ "endpoint" , ["rest_permission_denied_exc" , "permission_denied_exc" ]
486+ )
487+ def test_does_not_capture_403 (sentry_init , client , capture_events , endpoint ):
488+ if endpoint == "rest_permission_denied_exc" :
489+ pytest .importorskip ("rest_framework" )
490+
491+ sentry_init (integrations = [DjangoIntegration ()])
492+ events = capture_events ()
493+
494+ _content , status , _headers = client .get (reverse (endpoint ))
495+ assert status .lower () == "403 forbidden"
496+
497+ assert not events
You can’t perform that action at this time.
0 commit comments