@@ -472,12 +472,12 @@ async def effect():
472472 await asyncio .wait_for (cleanup_ran .wait (), 1 )
473473
474474
475- async def test_use_async_effect_cancel ():
475+ async def test_use_async_effect_cancel (caplog ):
476476 element_hook = HookCatcher ()
477477 effect_ran = asyncio .Event ()
478478 effect_was_cancelled = asyncio .Event ()
479479
480- event_that_is_never_set = asyncio .Event ()
480+ event_that_never_occurs = asyncio .Event ()
481481
482482 @idom .element
483483 @element_hook .capture
@@ -486,9 +486,10 @@ def ElementWithLongWaitingEffect():
486486 async def effect ():
487487 effect_ran .set ()
488488 try :
489- await event_that_is_never_set .wait ()
489+ await event_that_never_occurs .wait ()
490490 except asyncio .CancelledError :
491491 effect_was_cancelled .set ()
492+ raise
492493
493494 return idom .html .div ()
494495
@@ -502,6 +503,12 @@ async def effect():
502503
503504 await asyncio .wait_for (effect_was_cancelled .wait (), 1 )
504505
506+ # So I know we said the event never occurs but... to ensure the effect's future is
507+ # cancelled before the test is cleaned up we need to set the event. This is because
508+ # the cancellation doesn't propogate before the test is resolved which causes
509+ # delayed log messages that impact other tests.
510+ event_that_never_occurs .set ()
511+
505512
506513async def test_error_in_effect_is_gracefully_handled (caplog ):
507514 @idom .element
0 commit comments