Skip to content

Commit 0f7ae81

Browse files
committed
ref: Refactor transport tests to reuse code
1 parent 2075693 commit 0f7ae81

File tree

1 file changed

+21
-28
lines changed

1 file changed

+21
-28
lines changed

tests/test_transport.py

Lines changed: 21 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -11,21 +11,20 @@
1111
from sentry_sdk.integrations.logging import LoggingIntegration
1212

1313

14-
@pytest.fixture(params=[True, False])
15-
def make_client(request):
16-
def inner(*args, **kwargs):
17-
client = Client(*args, **kwargs)
18-
if request.param:
19-
client = pickle.loads(pickle.dumps(client))
20-
21-
return client
14+
@pytest.fixture
15+
def make_client(request, httpserver):
16+
def inner(**kwargs):
17+
return Client(
18+
"http://foobar{}/132".format(httpserver.url[len("http://") :]), **kwargs
19+
)
2220

2321
return inner
2422

2523

2624
@pytest.mark.forked
2725
@pytest.mark.parametrize("debug", (True, False))
2826
@pytest.mark.parametrize("client_flush_method", ["close", "flush"])
27+
@pytest.mark.parametrize("pickle", (True, False))
2928
def test_transport_works(
3029
httpserver,
3130
request,
@@ -34,15 +33,16 @@ def test_transport_works(
3433
debug,
3534
make_client,
3635
client_flush_method,
36+
pickle,
3737
maybe_monkeypatched_threading,
3838
):
3939
httpserver.serve_content("ok", 200)
40-
4140
caplog.set_level(logging.DEBUG)
41+
client = make_client(debug=debug)
42+
43+
if pickle:
44+
client = pickle.loads(pickle.dumps(client))
4245

43-
client = make_client(
44-
"http://foobar@{}/123".format(httpserver.url[len("http://") :]), debug=debug
45-
)
4646
Hub.current.bind_client(client)
4747
request.addfinalizer(lambda: Hub.current.bind_client(None))
4848

@@ -58,11 +58,10 @@ def test_transport_works(
5858
assert any("Sending event" in record.msg for record in caplog.records) == debug
5959

6060

61-
def test_transport_infinite_loop(httpserver, request):
61+
def test_transport_infinite_loop(httpserver, request, make_client):
6262
httpserver.serve_content("ok", 200)
6363

64-
client = Client(
65-
"http://foobar@{}/123".format(httpserver.url[len("http://") :]),
64+
client = make_client(
6665
debug=True,
6766
# Make sure we cannot create events from our own logging
6867
integrations=[LoggingIntegration(event_level=logging.DEBUG)],
@@ -110,8 +109,8 @@ def test_parse_rate_limits(input, expected):
110109
assert dict(_parse_rate_limits(input, now=NOW)) == expected
111110

112111

113-
def test_simple_rate_limits(httpserver, capsys, caplog):
114-
client = Client(dsn="http://foobar@{}/123".format(httpserver.url[len("http://") :]))
112+
def test_simple_rate_limits(httpserver, capsys, caplog, make_client):
113+
client = make_client()
115114
httpserver.serve_content("no", 429, headers={"Retry-After": "4"})
116115

117116
client.capture_event({"type": "transaction"})
@@ -130,10 +129,8 @@ def test_simple_rate_limits(httpserver, capsys, caplog):
130129

131130

132131
@pytest.mark.parametrize("response_code", [200, 429])
133-
def test_data_category_limits(httpserver, capsys, caplog, response_code):
134-
client = Client(
135-
dict(dsn="http://foobar@{}/123".format(httpserver.url[len("http://") :]))
136-
)
132+
def test_data_category_limits(httpserver, capsys, caplog, response_code, make_client):
133+
client = make_client()
137134
httpserver.serve_content(
138135
"hm",
139136
response_code,
@@ -162,15 +159,11 @@ def test_data_category_limits(httpserver, capsys, caplog, response_code):
162159

163160
@pytest.mark.parametrize("response_code", [200, 429])
164161
def test_complex_limits_without_data_category(
165-
httpserver, capsys, caplog, response_code
162+
httpserver, capsys, caplog, response_code, make_client
166163
):
167-
client = Client(
168-
dict(dsn="http://foobar@{}/123".format(httpserver.url[len("http://") :]))
169-
)
164+
client = make_client()
170165
httpserver.serve_content(
171-
"hm",
172-
response_code,
173-
headers={"X-Sentry-Rate-Limits": "4711::organization"},
166+
"hm", response_code, headers={"X-Sentry-Rate-Limits": "4711::organization"},
174167
)
175168

176169
client.capture_event({"type": "transaction"})

0 commit comments

Comments
 (0)