Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions sentry_sdk/serializer.py
Original file line number Diff line number Diff line change
Expand Up @@ -50,8 +50,8 @@

# Maximum depth and breadth of databags. Excess data will be trimmed. If
# max_request_body_size is "always", request bodies won't be trimmed.
MAX_DATABAG_DEPTH = 5
MAX_DATABAG_BREADTH = 10
MAX_DATABAG_DEPTH = 100
MAX_DATABAG_BREADTH = 100
CYCLE_MARKER = "<cyclic>"


Expand Down
14 changes: 13 additions & 1 deletion tests/integrations/clickhouse_driver/test_clickhouse_driver.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
```
"""

from unittest import mock

import clickhouse_driver
from clickhouse_driver import Client, connect

Expand Down Expand Up @@ -631,6 +633,8 @@ def test_clickhouse_dbapi_breadcrumbs_with_pii(sentry_init, capture_events) -> N
"server.address": "localhost",
"server.port": 9000,
"db.result": [[], []],
"thread.id": mock.ANY,
"thread.name": mock.ANY,
},
"message": "DROP TABLE IF EXISTS test",
"type": "default",
Expand All @@ -644,6 +648,8 @@ def test_clickhouse_dbapi_breadcrumbs_with_pii(sentry_init, capture_events) -> N
"server.address": "localhost",
"server.port": 9000,
"db.result": [[], []],
"thread.id": mock.ANY,
"thread.name": mock.ANY,
},
"message": "CREATE TABLE test (x Int32) ENGINE = Memory",
"type": "default",
Expand All @@ -657,6 +663,8 @@ def test_clickhouse_dbapi_breadcrumbs_with_pii(sentry_init, capture_events) -> N
"server.address": "localhost",
"server.port": 9000,
"db.params": [{"x": 100}],
"thread.id": mock.ANY,
"thread.name": mock.ANY,
},
"message": "INSERT INTO test (x) VALUES",
"type": "default",
Expand All @@ -670,6 +678,8 @@ def test_clickhouse_dbapi_breadcrumbs_with_pii(sentry_init, capture_events) -> N
"server.address": "localhost",
"server.port": 9000,
"db.params": [[170], [200]],
"thread.id": mock.ANY,
"thread.name": mock.ANY,
},
"message": "INSERT INTO test (x) VALUES",
"type": "default",
Expand All @@ -683,7 +693,9 @@ def test_clickhouse_dbapi_breadcrumbs_with_pii(sentry_init, capture_events) -> N
"server.address": "localhost",
"server.port": 9000,
"db.params": {"minv": 150},
"db.result": [[["370"]], [["'sum(x)'", "'Int64'"]]],
"db.result": [[[370]], [["sum(x)", "Int64"]]],
"thread.id": mock.ANY,
"thread.name": mock.ANY,
},
"message": "SELECT sum(x) FROM test WHERE x > 150",
"type": "default",
Expand Down
20 changes: 18 additions & 2 deletions tests/integrations/pure_eval/test_pure_eval.py
Original file line number Diff line number Diff line change
Expand Up @@ -62,8 +62,24 @@ def foo():
"i",
"u",
"y",
"t",
"r",
"e",
"w",
"q",
"events",
]
for key in expected_keys:
assert key in frame_vars

possible_keys = expected_keys + [
"(q, w, e, r, t, y, u, i, o, p, a, s)",
"str((q, w, e, r, t, y, u, i, o, p, a, s))",
]
assert list(frame_vars.keys()) == expected_keys

for frame_var in frame_vars:
assert frame_var in possible_keys

assert frame_vars["namespace.d"] == {"1": "2"}
assert frame_vars["namespace.d[1]"] == "2"
else:
Expand All @@ -85,4 +101,4 @@ def foo():
"s",
"events",
}
assert len(frame_vars) == serializer.MAX_DATABAG_BREADTH
assert len(frame_vars) == 14
20 changes: 5 additions & 15 deletions tests/test_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -771,23 +771,13 @@ def test_databag_depth_stripping(sentry_init, capture_events):
stacktrace_frame = event["exception"]["values"][0]["stacktrace"]["frames"][0]
a_var = stacktrace_frame["vars"]["a"]

assert type(a_var) == list
assert len(a_var) == 1 and type(a_var[0]) == list
for _ in range(99):
assert type(a_var) == list
assert len(a_var) == 1

first_level_list = a_var[0]
assert type(first_level_list) == list
assert len(first_level_list) == 1
a_var = a_var[0]

second_level_list = first_level_list[0]
assert type(second_level_list) == list
assert len(second_level_list) == 1

third_level_list = second_level_list[0]
assert type(third_level_list) == list
assert len(third_level_list) == 1

inner_value_repr = third_level_list[0]
assert type(inner_value_repr) == str
assert type(a_var) == str


def test_databag_string_stripping(sentry_init, capture_events):
Expand Down
2 changes: 1 addition & 1 deletion tests/test_scrubber.py
Original file line number Diff line number Diff line change
Expand Up @@ -230,7 +230,7 @@ def test_recursive_event_scrubber(sentry_init, capture_events):
capture_event({"extra": complex_structure})

(event,) = events
assert event["extra"]["deep"]["deeper"][0]["deepest"]["password"] == "'[Filtered]'"
assert event["extra"]["deep"]["deeper"][0]["deepest"]["password"] == "[Filtered]"


def test_recursive_scrubber_does_not_override_original(sentry_init, capture_events):
Expand Down