()
| 33 | |
| 34 | @pytest.fixture |
| 35 | async def event_manager() -> AsyncGenerator[LocalEventManager, None]: |
| 36 | # Use a long interval to avoid interference from periodic system info events during tests and ensure the first |
| 37 | # automatic event is consumed before yielding. |
| 38 | |
| 39 | event_manager = LocalEventManager(system_info_interval=timedelta(hours=9999)) |
| 40 | |
| 41 | initial_system_info_consumed = asyncio.Event() |
| 42 | |
| 43 | async def consume_automatic_system_info(_: EventSystemInfoData) -> None: |
| 44 | initial_system_info_consumed.set() |
| 45 | |
| 46 | event_manager.on(event=Event.SYSTEM_INFO, listener=consume_automatic_system_info) |
| 47 | |
| 48 | async with event_manager: |
| 49 | await initial_system_info_consumed.wait() |
| 50 | event_manager.off(event=Event.SYSTEM_INFO, listener=consume_automatic_system_info) |
| 51 | |
| 52 | yield event_manager |
| 53 | |
| 54 | |
| 55 | @pytest.fixture |
nothing calls this directly
no test coverage detected