@@ -196,19 +196,22 @@ async def test_enqueue_event_when_closed(event_queue: EventQueue) -> None:
196196 await child_queue .dequeue_event (no_wait = True )
197197
198198
199+ @pytest .fixture
200+ def expected_queue_closed_exception ():
201+ if sys .version_info < (3 , 13 ):
202+ return asyncio .QueueEmpty
203+ return asyncio .QueueShutDown
204+
205+
199206@pytest .mark .asyncio
200207async def test_dequeue_event_closed_and_empty_no_wait (
201- event_queue : EventQueue ,
208+ event_queue : EventQueue , expected_queue_closed_exception
202209) -> None :
203210 """Test dequeue_event raises QueueEmpty when closed, empty, and no_wait=True."""
204211 await event_queue .close ()
205212 assert event_queue .is_closed ()
206213 # Ensure queue is actually empty (e.g. by trying a non-blocking get on internal queue)
207- if sys .version_info < (3 , 13 ):
208- expected = asyncio .QueueEmpty
209- else :
210- expected = asyncio .QueueShutDown
211- with pytest .raises (expected ):
214+ with pytest .raises (expected_queue_closed_exception ):
212215 event_queue .queue .get_nowait ()
213216
214217 with pytest .raises (asyncio .QueueEmpty , match = 'Queue is closed.' ):
@@ -217,16 +220,12 @@ async def test_dequeue_event_closed_and_empty_no_wait(
217220
218221@pytest .mark .asyncio
219222async def test_dequeue_event_closed_and_empty_waits_then_raises (
220- event_queue : EventQueue ,
223+ event_queue : EventQueue , expected_queue_closed_exception
221224) -> None :
222225 """Test dequeue_event raises QueueEmpty eventually when closed, empty, and no_wait=False."""
223226 await event_queue .close ()
224227 assert event_queue .is_closed ()
225- if sys .version_info < (3 , 13 ):
226- expected = asyncio .QueueEmpty
227- else :
228- expected = asyncio .QueueShutDown
229- with pytest .raises (expected ):
228+ with pytest .raises (expected_queue_closed_exception ):
230229 event_queue .queue .get_nowait () # verify internal queue is empty
231230
232231 # This test is tricky because await event_queue.dequeue_event() would hang if not for the close check.
0 commit comments