Skip to content

Commit 2124653

Browse files
committed
Add HTTP_STATUS_CODE to responses (and some minor code cleanup - remove redundant call to _after_request_fn) (changes largely cloned from PR #46); update tox.ini to accept pytest command line args
1 parent a338d7c commit 2124653

File tree

3 files changed

+12
-10
lines changed

3 files changed

+12
-10
lines changed

flask_opentracing/tracing.py

+3-2
Original file line numberDiff line numberDiff line change
@@ -78,14 +78,15 @@ def wrapper(*args, **kwargs):
7878
return f(*args, **kwargs)
7979

8080
self._before_request_fn(list(attributes))
81+
8182
try:
8283
r = f(*args, **kwargs)
83-
self._after_request_fn()
8484
except Exception as e:
8585
self._after_request_fn(error=e)
8686
raise
8787

88-
self._after_request_fn()
88+
self._after_request_fn(response=r)
89+
8990
return r
9091

9192
wrapper.__name__ = f.__name__

tests/test_flask_tracing.py

+8-7
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import mock
22
import unittest
33

4-
from flask import (Flask, request)
4+
from flask import (Flask, Response, request)
55
import opentracing
66
from opentracing.ext import tags
77
from opentracing.mocktracer import MockTracer
@@ -27,32 +27,32 @@ def flush_spans(tcr):
2727

2828
@app.route('/test')
2929
def check_test_works():
30-
return 'Success'
30+
return Response('Success')
3131

3232

3333
@app.route('/another_test')
3434
@tracing.trace('url', 'url_rule')
3535
def decorated_fn():
36-
return 'Success again'
36+
return Response('Success again')
3737

3838

3939
@app.route('/another_test_simple')
4040
@tracing.trace('query_string', 'is_xhr')
4141
def decorated_fn_simple():
42-
return 'Success again'
42+
return Response('Success again')
4343

4444

4545
@app.route('/error_test')
4646
@tracing.trace()
4747
def decorated_fn_with_error():
48-
raise RuntimeError('Should not happen')
48+
raise RuntimeError('Intentional testing exception')
4949

5050

5151
@app.route('/decorated_child_span_test')
5252
@tracing.trace()
5353
def decorated_fn_with_child_span():
5454
with tracing.tracer.start_active_span('child'):
55-
return 'Success'
55+
return Response('Success')
5656

5757

5858
@app.route('/wire')
@@ -93,7 +93,7 @@ def test_span_deletion(self):
9393
assert not tracing_deferred._current_scopes
9494

9595
def test_span_tags(self):
96-
test_app.get('/another_test_simple')
96+
response = test_app.get('/another_test_simple')
9797

9898
spans = tracing._tracer.finished_spans()
9999
assert len(spans) == 1
@@ -102,6 +102,7 @@ def test_span_tags(self):
102102
tags.HTTP_METHOD: 'GET',
103103
tags.SPAN_KIND: tags.SPAN_KIND_RPC_SERVER,
104104
tags.HTTP_URL: 'http://localhost/another_test_simple',
105+
tags.HTTP_STATUS_CODE: response.status_code,
105106
}
106107

107108
@flaky(max_runs=5)

tox.ini

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,4 +23,4 @@ deps =
2323
flaky
2424
extras = tests
2525
commands =
26-
pytest
26+
pytest {posargs}

0 commit comments

Comments
 (0)