Skip to content

Commit fc7f369

Browse files
committed
Failing test for missing request in pyramid renderer
1 parent 955af02 commit fc7f369

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

tests/contrib/pyramid/test_pyramid.py

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
# 3p
88
from pyramid.response import Response
99
from pyramid.config import Configurator
10+
from pyramid.renderers import render_to_response
1011
from pyramid.httpexceptions import HTTPInternalServerError
1112
import webtest
1213
from nose.tools import eq_
@@ -118,6 +119,29 @@ def test_json(self):
118119
eq_(s.error, 0)
119120
eq_(s.span_type, 'template')
120121

122+
def test_renderer(self):
123+
res = self.app.get('/renderer', status=200)
124+
assert self.rend._received['request'] is not None
125+
self.rend.assert_(foo='bar')
126+
writer = self.tracer.writer
127+
spans = writer.pop()
128+
eq_(len(spans), 2)
129+
spans_by_name = {s.name: s for s in spans}
130+
s = spans_by_name['pyramid.request']
131+
eq_(s.service, 'foobar')
132+
eq_(s.resource, 'GET renderer')
133+
eq_(s.error, 0)
134+
eq_(s.span_type, 'http')
135+
eq_(s.meta.get('http.method'), 'GET')
136+
eq_(s.meta.get('http.status_code'), '200')
137+
eq_(s.meta.get('http.url'), '/renderer')
138+
eq_(s.meta.get('pyramid.route.name'), 'renderer')
139+
140+
s = spans_by_name['pyramid.render']
141+
eq_(s.service, 'foobar')
142+
eq_(s.error, 0)
143+
eq_(s.span_type, 'template')
144+
121145
class TestPyramid(PyramidBase):
122146
def setUp(self):
123147
from tests.test_tracer import get_dummy_tracer
@@ -128,6 +152,7 @@ def setUp(self):
128152
'datadog_tracer': self.tracer
129153
}
130154
config = Configurator(settings=settings)
155+
self.rend = config.testing_add_renderer('template.pt')
131156
trace_pyramid(config)
132157

133158
app = get_app(config)
@@ -213,14 +238,19 @@ def exception(request):
213238
def json(request):
214239
return {'a': 1}
215240

241+
def renderer(request):
242+
return render_to_response('template.pt', {'foo': 'bar'}, request=request)
243+
216244
config.add_route('index', '/')
217245
config.add_route('error', '/error')
218246
config.add_route('exception', '/exception')
219247
config.add_route('json', '/json')
248+
config.add_route('renderer', '/renderer')
220249
config.add_view(index, route_name='index')
221250
config.add_view(error, route_name='error')
222251
config.add_view(exception, route_name='exception')
223252
config.add_view(json, route_name='json', renderer='json')
253+
config.add_view(renderer, route_name='renderer', renderer='template.pt')
224254
return config.make_wsgi_app()
225255

226256

0 commit comments

Comments
 (0)