11
11
from sentry_sdk .integrations .logging import LoggingIntegration
12
12
13
13
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
+ )
22
20
23
21
return inner
24
22
25
23
26
24
@pytest .mark .forked
27
25
@pytest .mark .parametrize ("debug" , (True , False ))
28
26
@pytest .mark .parametrize ("client_flush_method" , ["close" , "flush" ])
27
+ @pytest .mark .parametrize ("pickle" , (True , False ))
29
28
def test_transport_works (
30
29
httpserver ,
31
30
request ,
@@ -34,15 +33,16 @@ def test_transport_works(
34
33
debug ,
35
34
make_client ,
36
35
client_flush_method ,
36
+ pickle ,
37
37
maybe_monkeypatched_threading ,
38
38
):
39
39
httpserver .serve_content ("ok" , 200 )
40
-
41
40
caplog .set_level (logging .DEBUG )
41
+ client = make_client (debug = debug )
42
+
43
+ if pickle :
44
+ client = pickle .loads (pickle .dumps (client ))
42
45
43
- client = make_client (
44
- "http://foobar@{}/123" .format (httpserver .url [len ("http://" ) :]), debug = debug
45
- )
46
46
Hub .current .bind_client (client )
47
47
request .addfinalizer (lambda : Hub .current .bind_client (None ))
48
48
@@ -58,11 +58,10 @@ def test_transport_works(
58
58
assert any ("Sending event" in record .msg for record in caplog .records ) == debug
59
59
60
60
61
- def test_transport_infinite_loop (httpserver , request ):
61
+ def test_transport_infinite_loop (httpserver , request , make_client ):
62
62
httpserver .serve_content ("ok" , 200 )
63
63
64
- client = Client (
65
- "http://foobar@{}/123" .format (httpserver .url [len ("http://" ) :]),
64
+ client = make_client (
66
65
debug = True ,
67
66
# Make sure we cannot create events from our own logging
68
67
integrations = [LoggingIntegration (event_level = logging .DEBUG )],
@@ -110,8 +109,8 @@ def test_parse_rate_limits(input, expected):
110
109
assert dict (_parse_rate_limits (input , now = NOW )) == expected
111
110
112
111
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 ( )
115
114
httpserver .serve_content ("no" , 429 , headers = {"Retry-After" : "4" })
116
115
117
116
client .capture_event ({"type" : "transaction" })
@@ -130,10 +129,8 @@ def test_simple_rate_limits(httpserver, capsys, caplog):
130
129
131
130
132
131
@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 ()
137
134
httpserver .serve_content (
138
135
"hm" ,
139
136
response_code ,
@@ -162,15 +159,11 @@ def test_data_category_limits(httpserver, capsys, caplog, response_code):
162
159
163
160
@pytest .mark .parametrize ("response_code" , [200 , 429 ])
164
161
def test_complex_limits_without_data_category (
165
- httpserver , capsys , caplog , response_code
162
+ httpserver , capsys , caplog , response_code , make_client
166
163
):
167
- client = Client (
168
- dict (dsn = "http://foobar@{}/123" .format (httpserver .url [len ("http://" ) :]))
169
- )
164
+ client = make_client ()
170
165
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" },
174
167
)
175
168
176
169
client .capture_event ({"type" : "transaction" })
0 commit comments