Skip to content

Commit

Permalink
Add tests for @ai_track decorator (#3325)
Browse files Browse the repository at this point in the history
  • Loading branch information
colin-sentry authored Jul 23, 2024
1 parent 25de71e commit c81c175
Showing 1 changed file with 59 additions and 0 deletions.
59 changes: 59 additions & 0 deletions tests/test_ai_monitoring.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
import sentry_sdk
from sentry_sdk.ai.monitoring import ai_track


def test_ai_track(sentry_init, capture_events):
sentry_init(traces_sample_rate=1.0)
events = capture_events()

@ai_track("my tool")
def tool(**kwargs):
pass

@ai_track("some test pipeline")
def pipeline():
tool()

with sentry_sdk.start_transaction():
pipeline()

transaction = events[0]
assert transaction["type"] == "transaction"
assert len(transaction["spans"]) == 2
spans = transaction["spans"]

ai_pipeline_span = spans[0] if spans[0]["op"] == "ai.pipeline" else spans[1]
ai_run_span = spans[0] if spans[0]["op"] == "ai.run" else spans[1]

assert ai_pipeline_span["description"] == "some test pipeline"
assert ai_run_span["description"] == "my tool"


def test_ai_track_with_tags(sentry_init, capture_events):
sentry_init(traces_sample_rate=1.0)
events = capture_events()

@ai_track("my tool")
def tool(**kwargs):
pass

@ai_track("some test pipeline")
def pipeline():
tool()

with sentry_sdk.start_transaction():
pipeline(sentry_tags={"user": "colin"}, sentry_data={"some_data": "value"})

transaction = events[0]
assert transaction["type"] == "transaction"
assert len(transaction["spans"]) == 2
spans = transaction["spans"]

ai_pipeline_span = spans[0] if spans[0]["op"] == "ai.pipeline" else spans[1]
ai_run_span = spans[0] if spans[0]["op"] == "ai.run" else spans[1]

assert ai_pipeline_span["description"] == "some test pipeline"
print(ai_pipeline_span)
assert ai_pipeline_span["tags"]["user"] == "colin"
assert ai_pipeline_span["data"]["some_data"] == "value"
assert ai_run_span["description"] == "my tool"

0 comments on commit c81c175

Please sign in to comment.