Skip to content

Commit 1cca7b9

Browse files
author
Emanuele Palazzetti
committed
[django] trace errors from views
1 parent eb208fc commit 1cca7b9

File tree

2 files changed

+22
-2
lines changed

2 files changed

+22
-2
lines changed

tests/contrib/django/app/views.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
"""
22
Class based views used for Django tests.
33
"""
4+
from django.http import HttpResponse
45
from django.conf.urls import url
5-
from django.views.generic import ListView
6+
from django.views.generic import ListView, TemplateView
67
from django.contrib.auth.models import User
78

89

@@ -11,7 +12,13 @@ class UserList(ListView):
1112
template_name = 'users_list.html'
1213

1314

15+
class ForbiddenView(TemplateView):
16+
def get(self, request, *args, **kwargs):
17+
return HttpResponse(status=403)
18+
19+
1420
# use this url patterns for tests
1521
urlpatterns = [
16-
url(r'^users/$', UserList.as_view(), name='users-list')
22+
url(r'^users/$', UserList.as_view(), name='users-list'),
23+
url(r'^fail-view/$', ForbiddenView.as_view(), name='forbidden-view'),
1724
]

tests/contrib/django/test_middleware.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,3 +57,16 @@ def test_middleware_trace_request(self):
5757
eq_(sp_request.get_tag('http.url'), '/users/')
5858
eq_(sp_request.get_tag('django.user.is_authenticated'), 'False')
5959
eq_(sp_request.get_tag('http.method'), 'GET')
60+
61+
def test_middleware_trace_errors(self):
62+
# ensures that the internals are properly traced
63+
url = reverse('forbidden-view')
64+
response = self.client.get(url)
65+
eq_(response.status_code, 403)
66+
67+
# check for spans
68+
spans = self.tracer.writer.pop()
69+
eq_(len(spans), 1)
70+
span = spans[0]
71+
eq_(span.get_tag('http.status_code'), '403')
72+
eq_(span.get_tag('http.url'), '/fail-view/')

0 commit comments

Comments
 (0)