Skip to content

Commit b077f61

Browse files
authored
Merge pull request #269 from appsignal/test-send-error-span-closes-on-raise
Test send_error_with_context closes span on raise
2 parents 41421e5 + 0e215d8 commit b077f61

1 file changed

Lines changed: 18 additions & 0 deletions

File tree

tests/test_tracing.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
from __future__ import annotations
22

3+
import pytest
34
from opentelemetry import trace
45
from opentelemetry.trace import StatusCode
56

@@ -245,3 +246,20 @@ def test_send_error_with_context(spans):
245246
assert event.name == "exception"
246247
assert event.attributes["exception.type"] == "tests.test_tracing.FooError"
247248
assert event.attributes["exception.message"] == "Whoops!"
249+
250+
251+
def test_send_error_with_context_closes_span_when_block_raises(spans):
252+
# An error raised inside the `with` block bubbles out to the caller, but the
253+
# error span is still ended and exported.
254+
with pytest.raises(RuntimeError, match="Kaboom!"):
255+
with send_error_with_context(raised_error()):
256+
raise RuntimeError("Kaboom!")
257+
258+
span = spans()[0]
259+
assert span.name == "FooError"
260+
assert span.status.status_code == StatusCode.ERROR
261+
262+
event = span.events[0]
263+
assert event.name == "exception"
264+
assert event.attributes["exception.type"] == "tests.test_tracing.FooError"
265+
assert event.attributes["exception.message"] == "Whoops!"

0 commit comments

Comments
 (0)