|
1 | | -from sentry_sdk import configure_scope, capture_exception, last_event_id, Hub |
| 1 | +from sentry_sdk import ( |
| 2 | + configure_scope, |
| 3 | + capture_exception, |
| 4 | + add_breadcrumb, |
| 5 | + last_event_id, |
| 6 | + Hub, |
| 7 | +) |
2 | 8 |
|
3 | 9 |
|
4 | 10 | def test_processors(sentry_init, capture_events): |
@@ -38,3 +44,43 @@ def test_event_id(sentry_init, capture_events): |
38 | 44 | assert event["event_id"] == event_id |
39 | 45 | assert last_event_id() == event_id |
40 | 46 | assert Hub.current.last_event_id() == event_id |
| 47 | + |
| 48 | + |
| 49 | +def test_option_callback(sentry_init, capture_events): |
| 50 | + drop_events = False |
| 51 | + drop_breadcrumbs = False |
| 52 | + |
| 53 | + def before_send(event): |
| 54 | + if not drop_events: |
| 55 | + event["extra"] = {"foo": "bar"} |
| 56 | + return event |
| 57 | + |
| 58 | + def before_breadcrumb(crumb): |
| 59 | + if not drop_breadcrumbs: |
| 60 | + crumb["data"] = {"foo": "bar"} |
| 61 | + return crumb |
| 62 | + |
| 63 | + sentry_init(before_send=before_send, before_breadcrumb=before_breadcrumb) |
| 64 | + events = capture_events() |
| 65 | + |
| 66 | + def do_this(): |
| 67 | + add_breadcrumb(message="Hello") |
| 68 | + try: |
| 69 | + raise ValueError("aha!") |
| 70 | + except Exception: |
| 71 | + capture_exception() |
| 72 | + |
| 73 | + do_this() |
| 74 | + drop_breadcrumbs = True |
| 75 | + do_this() |
| 76 | + drop_events = True |
| 77 | + do_this() |
| 78 | + |
| 79 | + normal, no_crumbs = events |
| 80 | + |
| 81 | + assert normal["exception"]["values"][0]["type"] == "ValueError" |
| 82 | + crumb, = normal["breadcrumbs"] |
| 83 | + assert "timestamp" in crumb |
| 84 | + assert crumb["message"] == "Hello" |
| 85 | + assert crumb["data"] == {"foo": "bar"} |
| 86 | + assert crumb["type"] == "default" |
0 commit comments