Skip to content

Commit b95b827

Browse files
committed
Merge branch 'potel-base' into potel-base-run-all-tests
2 parents 8b1805c + fbbf5e7 commit b95b827

File tree

3 files changed

+26
-32
lines changed

3 files changed

+26
-32
lines changed

sentry_sdk/integrations/huey.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,8 @@ def _sentry_execute(*args, **kwargs):
135135
exc_info = sys.exc_info()
136136
_capture_exception(exc_info)
137137
reraise(*exc_info)
138+
else:
139+
sentry_sdk.get_current_scope().transaction.set_status(SPANSTATUS.OK)
138140

139141
return result
140142

@@ -165,9 +167,7 @@ def _sentry_execute(self, task, timestamp=None):
165167
op=OP.QUEUE_TASK_HUEY,
166168
source=TRANSACTION_SOURCE_TASK,
167169
origin=HueyIntegration.origin,
168-
) as transaction:
169-
return_value = old_execute(self, task, timestamp)
170-
transaction.set_status(SPANSTATUS.OK)
171-
return return_value
170+
):
171+
return old_execute(self, task, timestamp)
172172

173173
Huey._execute = _sentry_execute

sentry_sdk/tracing.py

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1541,17 +1541,13 @@ def set_attribute(self, key, value):
15411541
def set_status(self, status):
15421542
# type: (str) -> None
15431543
if status == SPANSTATUS.OK:
1544-
# Do not set status if it's already set.
1545-
# We would override an error status with OK.
1546-
if self._otel_span.status.status_code == StatusCode.UNSET:
1547-
self._otel_span.set_status(StatusCode.OK, None)
1544+
otel_status = StatusCode.OK
1545+
otel_description = None
15481546
else:
1549-
# OpenTelemetry does not allow setting and error status
1550-
# if the span is already set to OK
1551-
if self._otel_span.status.status_code == StatusCode.OK:
1552-
return
1547+
otel_status = StatusCode.ERROR
1548+
otel_description = status
15531549

1554-
self._otel_span.set_status(StatusCode.ERROR, status)
1550+
self._otel_span.set_status(otel_status, otel_description)
15551551

15561552
def set_measurement(self, name, value, unit=""):
15571553
# type: (str, float, MeasurementUnit) -> None

tests/integrations/starlette/test_starlette.py

Lines changed: 17 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -659,9 +659,9 @@ def test_middleware_spans(sentry_init, capture_events):
659659
"AuthenticationMiddleware",
660660
"ExceptionMiddleware",
661661
"AuthenticationMiddleware", # 'op': 'middleware.starlette.send'
662-
"ServerErrorMiddleware", # 'op': 'middleware.starlette.send'
663662
"AuthenticationMiddleware", # 'op': 'middleware.starlette.send'
664663
"ServerErrorMiddleware", # 'op': 'middleware.starlette.send'
664+
"ServerErrorMiddleware", # 'op': 'middleware.starlette.send'
665665
]
666666

667667
assert len(transaction_event["spans"]) == len(expected_middleware_spans)
@@ -736,23 +736,23 @@ def test_middleware_callback_spans(sentry_init, capture_events):
736736
},
737737
{
738738
"op": "middleware.starlette.send",
739-
"description": "ServerErrorMiddleware.__call__.<locals>._send",
740-
"tags": {"starlette.middleware_name": "SampleMiddleware"},
739+
"description": "SampleMiddleware.__call__.<locals>.do_stuff",
740+
"tags": {"starlette.middleware_name": "ExceptionMiddleware"},
741741
},
742742
{
743743
"op": "middleware.starlette.send",
744-
"description": "SentryAsgiMiddleware._run_app.<locals>._sentry_wrapped_send",
745-
"tags": {"starlette.middleware_name": "ServerErrorMiddleware"},
744+
"description": "ServerErrorMiddleware.__call__.<locals>._send",
745+
"tags": {"starlette.middleware_name": "SampleMiddleware"},
746746
},
747747
{
748748
"op": "middleware.starlette.send",
749-
"description": "SampleMiddleware.__call__.<locals>.do_stuff",
750-
"tags": {"starlette.middleware_name": "ExceptionMiddleware"},
749+
"description": "ServerErrorMiddleware.__call__.<locals>._send",
750+
"tags": {"starlette.middleware_name": "SampleMiddleware"},
751751
},
752752
{
753753
"op": "middleware.starlette.send",
754-
"description": "ServerErrorMiddleware.__call__.<locals>._send",
755-
"tags": {"starlette.middleware_name": "SampleMiddleware"},
754+
"description": "SentryAsgiMiddleware._run_app.<locals>._sentry_wrapped_send",
755+
"tags": {"starlette.middleware_name": "ServerErrorMiddleware"},
756756
},
757757
{
758758
"op": "middleware.starlette.send",
@@ -830,16 +830,16 @@ def test_middleware_partial_receive_send(sentry_init, capture_events):
830830
"description": "ServerErrorMiddleware.__call__.<locals>._send",
831831
"tags": {"starlette.middleware_name": "SamplePartialReceiveSendMiddleware"},
832832
},
833-
{
834-
"op": "middleware.starlette.send",
835-
"description": "SentryAsgiMiddleware._run_app.<locals>._sentry_wrapped_send",
836-
"tags": {"starlette.middleware_name": "ServerErrorMiddleware"},
837-
},
838833
{
839834
"op": "middleware.starlette",
840835
"description": "ExceptionMiddleware",
841836
"tags": {"starlette.middleware_name": "ExceptionMiddleware"},
842837
},
838+
{
839+
"op": "middleware.starlette.send",
840+
"description": "SentryAsgiMiddleware._run_app.<locals>._sentry_wrapped_send",
841+
"tags": {"starlette.middleware_name": "ServerErrorMiddleware"},
842+
},
843843
{
844844
"op": "middleware.starlette.send",
845845
"description": "functools.partial(<function SamplePartialReceiveSendMiddleware.__call__.<locals>.my_send at ",
@@ -886,13 +886,13 @@ def test_active_thread_id(sentry_init, capture_envelopes, teardown_profiling, en
886886
sentry_init(
887887
traces_sample_rate=1.0,
888888
profiles_sample_rate=1.0,
889+
integrations=[StarletteIntegration()],
889890
)
890891
app = starlette_app_factory()
891-
asgi_app = SentryAsgiMiddleware(app)
892892

893893
envelopes = capture_envelopes()
894894

895-
client = TestClient(asgi_app)
895+
client = TestClient(app)
896896
response = client.get(endpoint)
897897
assert response.status_code == 200
898898

@@ -1244,9 +1244,7 @@ def test_transaction_http_method_default(sentry_init, capture_events):
12441244
"""
12451245
sentry_init(
12461246
traces_sample_rate=1.0,
1247-
integrations=[
1248-
StarletteIntegration(),
1249-
],
1247+
integrations=[StarletteIntegration()],
12501248
)
12511249
events = capture_events()
12521250

0 commit comments

Comments
 (0)