8000 fix: Never send NaN · etherscan-io/sentry-python@022509a · GitHub
[go: up one dir, main page]

Skip to content
8000

Commit 022509a

Browse files
committed
fix: Never send NaN
1 parent 7eaba8f commit 022509a

File tree

2 files changed

+25
-2
lines changed

2 files changed

+25
-2
lines changed

sentry_sdk/transport.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ def _send_event(self, event):
112112

113113
body = io.BytesIO()
114114
with gzip.GzipFile(fileobj=body, mode="w") as f:
115-
f.write(json.dumps(event).encode("utf-8"))
115+
f.write(json.dumps(event, allow_nan=False).encode("utf-8"))
116116

117117
logger.debug(
118118
"Sending %s event [%s] to %s project:%s"

tests/test_client.py

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,14 @@
88

99
from datetime import datetime
1010
from textwrap import dedent
11-
from sentry_sdk import Hub, Client, configure_scope, capture_message, add_breadcrumb
11+
from sentry_sdk import (
12+
Hub,
13+
Client,
14+
configure_scope,
15+
capture_message,
16+
add_breadcrumb,
17+
capture_exception,
18+
)
1219
from sentry_sdk.hub import HubMeta
1320
from sentry_sdk.transport import Transport
1421
from sentry_sdk._compat import reraise, text_type
@@ -290,3 +297,19 @@ def test_weird_chars(sentry_init, capture_events):
290297
capture_message(u"föö".encode("latin1"))
291298
event, = events
292299
assert json.loads(json.dumps(event)) == event
300+
301+
302+
def test_nan(sentry_init, capture_events):
303+
sentry_init()
304+
events = capture_events()
305+
306+
try:
307+
nan = float("nan") # noqa
308+
1 / 0
309+
except Exception:
310+
capture_exception()
311+
312+
event, = events
313+
frames = event["exception"]["values"][0]["stacktrace"]["frames"]
314+
frame, = frames
315+
assert frame["vars"]["nan"] == "nan"

0 commit comments

Comments
 (0)
0