55from sentry_sdk .client import Transport
66
77
8+ @pytest .fixture
9+ def monkeypatch_test_transport (monkeypatch ):
10+ return lambda client : monkeypatch .setattr (client , "_transport" , TestTransport ())
11+
12+
13+ @pytest .fixture
14+ def sentry_init (monkeypatch_test_transport ):
15+ def inner (* a , ** kw ):
16+ client = sentry_sdk .Client (* a , ** kw )
17+ monkeypatch_test_transport (client )
18+ sentry_sdk .Hub .current .bind_client (client )
19+
20+ return inner
21+
22+
823class TestTransport (Transport ):
924 def __init__ (self ):
1025 pass
@@ -21,13 +36,6 @@ def capture_event(self, event):
2136 dsn = "LOL"
2237
2338
24- @pytest .fixture (autouse = True )
25- def set_test_transport (monkeypatch ):
26- test_client = sentry_sdk .Hub .current .client
27- if test_client :
28- monkeypatch .setattr (test_client , "_transport" , TestTransport ())
29-
30-
3139@pytest .fixture (autouse = True )
3240def reraise_internal_exceptions (monkeypatch ):
3341 def capture_internal_exception (error = None ):
@@ -44,18 +52,26 @@ def capture_internal_exception(error=None):
4452
4553@pytest .fixture
4654def capture_exceptions (monkeypatch ):
47- errors = []
55+ def inner ():
56+ errors = []
57+
58+ def capture_exception (error = None ):
59+ errors .append (error or sys .exc_info ()[1 ])
4860
49- def capture_exception (error = None ):
50- errors .append (error or sys .exc_info ()[1 ])
61+ monkeypatch .setattr (
62+ sentry_sdk .Hub .current , "capture_exception" , capture_exception
63+ )
64+ return errors
5165
52- monkeypatch .setattr (sentry_sdk .Hub .current , "capture_exception" , capture_exception )
53- return errors
66+ return inner
5467
5568
5669@pytest .fixture
5770def capture_events (monkeypatch ):
58- events = []
59- test_client = sentry_sdk .Hub .current .client
60- monkeypatch .setattr (test_client ._transport , "capture_event" , events .append )
61- return events
71+ def inner ():
72+ events = []
73+ test_client = sentry_sdk .Hub .current .client
74+ monkeypatch .setattr (test_client ._transport , "capture_event" , events .append )
75+ return events
76+
77+ return inner
0 commit comments