1+ import asyncio
12import pytest
23from typing import Union , Optional
34from dataclasses import dataclass
@@ -552,7 +553,11 @@ def test_register_message_handlers_discovers_standalone_function():
552553 def handle_order (message : OrderCreated ):
553554 return "success"
554555
555- closers = register_message_handlers ([handle_order ], mock_client , loop = None )
556+ loop = asyncio .new_event_loop ()
557+ try :
558+ closers = register_message_handlers ([handle_order ], mock_client , loop = loop )
559+ finally :
560+ loop .close ()
556561
557562 # Should create one subscription
558563 assert mock_client .subscribe_with_handler .call_count == 1
@@ -580,7 +585,11 @@ def handle_cancelled(self, message: OrderCancelled):
580585 return "cancelled"
581586
582587 handler = OrderHandler ()
583- closers = register_message_handlers ([handler ], mock_client , loop = None )
588+ loop = asyncio .new_event_loop ()
589+ try :
590+ closers = register_message_handlers ([handler ], mock_client , loop = loop )
591+ finally :
592+ loop .close ()
584593
585594 # Should create two subscriptions
586595 assert mock_client .subscribe_with_handler .call_count == 2
@@ -610,7 +619,11 @@ def regular_method(self, message: OrderCreated):
610619 return "ignored"
611620
612621 handler = MixedHandler ()
613- closers = register_message_handlers ([handler ], mock_client , loop = None )
622+ loop = asyncio .new_event_loop ()
623+ try :
624+ closers = register_message_handlers ([handler ], mock_client , loop = loop )
625+ finally :
626+ loop .close ()
614627
615628 # Should only create one subscription (for decorated method)
616629 assert mock_client .subscribe_with_handler .call_count == 1
@@ -632,9 +645,13 @@ def handle_shipment(self, message: ShipmentCreated):
632645 pass
633646
634647 handler_instance = OrderHandler ()
635- closers = register_message_handlers (
636- [standalone_handler , handler_instance ], mock_client , loop = None
637- )
648+ loop = asyncio .new_event_loop ()
649+ try :
650+ closers = register_message_handlers (
651+ [standalone_handler , handler_instance ], mock_client , loop = loop
652+ )
653+ finally :
654+ loop .close ()
638655
639656 # Should create two subscriptions
640657 assert mock_client .subscribe_with_handler .call_count == 2
@@ -654,9 +671,13 @@ def handle_created(message: OrderCreated):
654671 def handle_cancelled (message : OrderCancelled ):
655672 pass
656673
657- closers = register_message_handlers (
658- [handle_created , handle_cancelled ], mock_client , loop = None
659- )
674+ loop = asyncio .new_event_loop ()
675+ try :
676+ closers = register_message_handlers (
677+ [handle_created , handle_cancelled ], mock_client , loop = loop
678+ )
679+ finally :
680+ loop .close ()
660681
661682 # Should return two closers
662683 assert len (closers ) == 2
0 commit comments