From b3425a7c780fb8d371121ab2c9ea162bbb786f3e Mon Sep 17 00:00:00 2001 From: Priyansh Date: Tue, 22 Sep 2026 19:40:50 +0000 Subject: [PATCH] test(breadcrumbs): Add regression tests for breadcrumb truncation _meta (#3996) --- tests/test_client.py | 45 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/tests/test_client.py b/tests/test_client.py index ad08932690..7051782f68 100644 --- a/tests/test_client.py +++ b/tests/test_client.py @@ -1076,6 +1076,51 @@ def test_max_breadcrumbs_option( assert len(events[0]["breadcrumbs"]["values"]) == expected_breadcrumbs +def test_breadcrumbs_truncated_meta(sentry_init, capture_events): + sentry_init(max_breadcrumbs=3) + events = capture_events() + + for i in range(10): + add_breadcrumb({"message": f"crumb {i}"}) + + capture_message("dogs are great") + + (event,) = events + + assert len(event["breadcrumbs"]["values"]) == 3 + assert event["_meta"]["breadcrumbs"] == {"": {"len": 10}} + + +def test_breadcrumbs_not_truncated_no_meta(sentry_init, capture_events): + sentry_init(max_breadcrumbs=3) + events = capture_events() + + for i in range(3): + add_breadcrumb({"message": f"crumb {i}"}) + + capture_message("dogs are great") + + (event,) = events + + assert len(event["breadcrumbs"]["values"]) == 3 + assert "breadcrumbs" not in event.get("_meta", {}) + + +def test_breadcrumbs_truncated_meta_from_child_scope(sentry_init, capture_events): + sentry_init(max_breadcrumbs=2) + events = capture_events() + + with sentry_sdk.new_scope() as scope: + for i in range(5): + scope.add_breadcrumb({"message": f"crumb {i}"}) + capture_message("dogs are great") + + (event,) = events + + assert len(event["breadcrumbs"]["values"]) == 2 + assert event["_meta"]["breadcrumbs"] == {"": {"len": 5}} + + def test_multiple_positional_args(sentry_init): with pytest.raises(TypeError) as exinfo: sentry_init(1, None)