1515 pass # All tests will be skipped with incompatible versions
1616
1717
18- minimum_python_37 = pytest .mark .skipif (
19- sys .version_info < (3 , 7 ), reason = "Asyncio tests need Python >= 3.7 "
18+ minimum_python_38 = pytest .mark .skipif (
19+ sys .version_info < (3 , 8 ), reason = "Asyncio tests need Python >= 3.8 "
2020)
2121
2222
@@ -38,14 +38,6 @@ async def boom():
3838 1 / 0
3939
4040
41- @pytest .fixture (scope = "session" )
42- def event_loop (request ):
43- """Create an instance of the default event loop for each test case."""
44- loop = asyncio .get_event_loop_policy ().new_event_loop ()
45- yield loop
46- loop .close ()
47-
48-
4941def get_sentry_task_factory (mock_get_running_loop ):
5042 """
5143 Patches (mocked) asyncio and gets the sentry_task_factory.
@@ -57,12 +49,11 @@ def get_sentry_task_factory(mock_get_running_loop):
5749 return patched_factory
5850
5951
60- @minimum_python_37
61- @pytest .mark .asyncio
52+ @minimum_python_38
53+ @pytest .mark .asyncio ( loop_scope = "module" )
6254async def test_create_task (
6355 sentry_init ,
6456 capture_events ,
65- event_loop ,
6657):
6758 sentry_init (
6859 traces_sample_rate = 1.0 ,
@@ -76,10 +67,10 @@ async def test_create_task(
7667
7768 with sentry_sdk .start_transaction (name = "test_transaction_for_create_task" ):
7869 with sentry_sdk .start_span (op = "root" , name = "not so important" ):
79- tasks = [event_loop .create_task (foo ()), event_loop .create_task (bar ())]
70+ tasks = [asyncio .create_task (foo ()), asyncio .create_task (bar ())]
8071 await asyncio .wait (tasks , return_when = asyncio .FIRST_EXCEPTION )
8172
82- sentry_sdk .flush ()
73+ sentry_sdk .flush ()
8374
8475 (transaction_event ,) = events
8576
@@ -101,8 +92,8 @@ async def test_create_task(
10192 )
10293
10394
104- @minimum_python_37
105- @pytest .mark .asyncio
95+ @minimum_python_38
96+ @pytest .mark .asyncio ( loop_scope = "module" )
10697async def test_gather (
10798 sentry_init ,
10899 capture_events ,
@@ -121,7 +112,7 @@ async def test_gather(
121112 with sentry_sdk .start_span (op = "root" , name = "not so important" ):
122113 await asyncio .gather (foo (), bar (), return_exceptions = True )
123114
124- sentry_sdk .flush ()
115+ sentry_sdk .flush ()
125116
126117 (transaction_event ,) = events
127118
@@ -143,12 +134,11 @@ async def test_gather(
143134 )
144135
145136
146- @minimum_python_37
147- @pytest .mark .asyncio
137+ @minimum_python_38
138+ @pytest .mark .asyncio ( loop_scope = "module" )
148139async def test_exception (
149140 sentry_init ,
150141 capture_events ,
151- event_loop ,
152142):
153143 sentry_init (
154144 traces_sample_rate = 1.0 ,
@@ -162,10 +152,10 @@ async def test_exception(
162152
163153 with sentry_sdk .start_transaction (name = "test_exception" ):
164154 with sentry_sdk .start_span (op = "root" , name = "not so important" ):
165- tasks = [event_loop .create_task (boom ()), event_loop .create_task (bar ())]
155+ tasks = [asyncio .create_task (boom ()), asyncio .create_task (bar ())]
166156 await asyncio .wait (tasks , return_when = asyncio .FIRST_EXCEPTION )
167157
168- sentry_sdk .flush ()
158+ sentry_sdk .flush ()
169159
170160 (error_event , _ ) = events
171161
@@ -177,8 +167,8 @@ async def test_exception(
177167 assert error_event ["exception" ]["values" ][0 ]["mechanism" ]["type" ] == "asyncio"
178168
179169
180- @minimum_python_37
181- @pytest .mark .asyncio
170+ @minimum_python_38
171+ @pytest .mark .asyncio ( loop_scope = "module" )
182172async def test_task_result (sentry_init ):
183173 sentry_init (
184174 integrations = [
@@ -194,7 +184,7 @@ async def add(a, b):
194184
195185
196186@minimum_python_311
197- @pytest .mark .asyncio
187+ @pytest .mark .asyncio ( loop_scope = "module" )
198188async def test_task_with_context (sentry_init ):
199189 """
200190 Integration test to ensure working context parameter in Python 3.11+
@@ -223,7 +213,7 @@ async def retrieve_value():
223213 assert retrieve_task .result () == "changed value"
224214
225215
226- @minimum_python_37
216+ @minimum_python_38
227217@patch ("asyncio.get_running_loop" )
228218def test_patch_asyncio (mock_get_running_loop ):
229219 """
@@ -242,7 +232,7 @@ def test_patch_asyncio(mock_get_running_loop):
242232 assert callable (sentry_task_factory )
243233
244234
245- @minimum_python_37
235+ @minimum_python_38
246236@patch ("asyncio.get_running_loop" )
247237@patch ("sentry_sdk.integrations.asyncio.Task" )
248238def test_sentry_task_factory_no_factory (MockTask , mock_get_running_loop ): # noqa: N803
@@ -271,7 +261,7 @@ def test_sentry_task_factory_no_factory(MockTask, mock_get_running_loop): # noq
271261 assert task_kwargs ["loop" ] == mock_loop
272262
273263
274- @minimum_python_37
264+ @minimum_python_38
275265@patch ("asyncio.get_running_loop" )
276266def test_sentry_task_factory_with_factory (mock_get_running_loop ):
277267 mock_loop = mock_get_running_loop .return_value
@@ -361,12 +351,11 @@ def test_sentry_task_factory_context_with_factory(mock_get_running_loop):
361351 assert task_factory_kwargs ["context" ] == mock_context
362352
363353
364- @minimum_python_37
365- @pytest .mark .asyncio
354+ @minimum_python_38
355+ @pytest .mark .asyncio ( loop_scope = "module" )
366356async def test_span_origin (
367357 sentry_init ,
368358 capture_events ,
369- event_loop ,
370359):
371360 sentry_init (
372361 integrations = [AsyncioIntegration ()],
@@ -377,11 +366,11 @@ async def test_span_origin(
377366
378367 with sentry_sdk .start_transaction (name = "something" ):
379368 tasks = [
380- event_loop .create_task (foo ()),
369+ asyncio .create_task (foo ()),
381370 ]
382371 await asyncio .wait (tasks , return_when = asyncio .FIRST_EXCEPTION )
383372
384- sentry_sdk .flush ()
373+ sentry_sdk .flush ()
385374
386375 (event ,) = events
387376
0 commit comments