Skip to content

Commit d4e081d

Browse files
committed
fix: Fix crash under Python 2
1 parent aec801a commit d4e081d

File tree

2 files changed

+14
-6
lines changed

2 files changed

+14
-6
lines changed

sentry_sdk/transport.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
from __future__ import print_function
22

33
import json
4-
import gzip
4+
import io
55
import urllib3
66
import logging
77
import threading
88
import certifi
99
import sys
1010
import traceback
11+
import gzip
1112

1213
from datetime import datetime, timedelta
1314

@@ -41,11 +42,14 @@ def _make_pool(dsn, http_proxy, https_proxy):
4142

4243

4344
def send_event(pool, event, auth):
44-
body = gzip.compress(json.dumps(event).encode("utf-8"))
45+
body = io.BytesIO()
46+
with gzip.GzipFile(fileobj=body, mode="w") as f:
47+
f.write(json.dumps(event).encode("utf-8"))
48+
4549
response = pool.request(
4650
"POST",
4751
str(auth.store_api_url),
48-
body=body,
52+
body=body.getvalue(),
4953
headers={
5054
"X-Sentry-Auth": str(auth.to_header()),
5155
"Content-Type": "application/json",

tests/test_client.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
# coding: utf-8
12
import time
23
import pytest
34
import sys
@@ -133,11 +134,14 @@ def callback(scope):
133134

134135
def test_transport_works(sentry_init, httpserver, request, capsys):
135136
httpserver.serve_content("ok", 200)
136-
sentry_init("http://foobar@{}/123".format(httpserver.url[len("http://") :]))
137-
capture_message("lol")
138-
Hub.current.client.drain_events()
139137

138+
client = Client("http://foobar@{}/123".format(httpserver.url[len("http://") :]))
139+
Hub.current.bind_client(client)
140140
request.addfinalizer(lambda: Hub.current.bind_client(None))
141141

142+
capture_message("löl")
143+
client.drain_events()
144+
142145
out, err = capsys.readouterr()
143146
assert not err and not out
147+
assert httpserver.requests

0 commit comments

Comments
 (0)