-
Notifications
You must be signed in to change notification settings - Fork 530
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
ref(tests): Split up tracing tests (#857)
No behavior changes, just movin' stuff around.
- Loading branch information
1 parent
d8c161f
commit b36c548
Showing
4 changed files
with
100 additions
and
106 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
from sentry_sdk import start_span | ||
|
||
from sentry_sdk.tracing import Span | ||
|
||
|
||
def test_start_span_to_start_transaction(sentry_init, capture_events): | ||
# XXX: this only exists for backwards compatibility with code before | ||
# Transaction / start_transaction were introduced. | ||
sentry_init(traces_sample_rate=1.0) | ||
events = capture_events() | ||
|
||
with start_span(transaction="/1/"): | ||
pass | ||
|
||
with start_span(Span(transaction="/2/")): | ||
pass | ||
|
||
assert len(events) == 2 | ||
assert events[0]["transaction"] == "/1/" | ||
assert events[1]["transaction"] == "/2/" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
import pytest | ||
|
||
from sentry_sdk import start_span, start_transaction | ||
from sentry_sdk.tracing import Transaction | ||
|
||
|
||
def test_span_trimming(sentry_init, capture_events): | ||
sentry_init(traces_sample_rate=1.0, _experiments={"max_spans": 3}) | ||
events = capture_events() | ||
|
||
with start_transaction(name="hi"): | ||
for i in range(10): | ||
with start_span(op="foo{}".format(i)): | ||
pass | ||
|
||
(event,) = events | ||
span1, span2 = event["spans"] | ||
assert span1["op"] == "foo0" | ||
assert span2["op"] == "foo1" | ||
|
||
|
||
def test_transaction_method_signature(sentry_init, capture_events): | ||
sentry_init(traces_sample_rate=1.0) | ||
events = capture_events() | ||
|
||
with pytest.raises(TypeError): | ||
start_span(name="foo") | ||
assert len(events) == 0 | ||
|
||
with start_transaction() as transaction: | ||
pass | ||
assert transaction.name == "<unlabeled transaction>" | ||
assert len(events) == 1 | ||
|
||
with start_transaction() as transaction: | ||
transaction.name = "name-known-after-transaction-started" | ||
assert len(events) == 2 | ||
|
||
with start_transaction(name="a"): | ||
pass | ||
assert len(events) == 3 | ||
|
||
with start_transaction(Transaction(name="c")): | ||
pass | ||
assert len(events) == 4 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
from sentry_sdk import start_span, start_transaction | ||
|
||
|
||
def test_sampling_decided_only_for_transactions(sentry_init, capture_events): | ||
sentry_init(traces_sample_rate=0.5) | ||
|
||
with start_transaction(name="hi") as transaction: | ||
assert transaction.sampled is not None | ||
|
||
with start_span() as span: | ||
assert span.sampled == transaction.sampled | ||
|
||
with start_span() as span: | ||
assert span.sampled is None | ||
|
||
|
||
def test_nested_transaction_sampling_override(): | ||
with start_transaction(name="outer", sampled=True) as outer_transaction: | ||
assert outer_transaction.sampled is True | ||
with start_transaction(name="inner", sampled=False) as inner_transaction: | ||
assert inner_transaction.sampled is False | ||
assert outer_transaction.sampled is True | ||
|
||
|
||
def test_no_double_sampling(sentry_init, capture_events): | ||
# Transactions should not be subject to the global/error sample rate. | ||
# Only the traces_sample_rate should apply. | ||
sentry_init(traces_sample_rate=1.0, sample_rate=0.0) | ||
events = capture_events() | ||
|
||
with start_transaction(name="/"): | ||
pass | ||
|
||
assert len(events) == 1 |