File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1010import asyncio
1111
1212import pytest
13+ from statemachine .engines .base import EventQueue
14+ from statemachine .event_data import TriggerData
1315
1416from statemachine import State
1517from statemachine import StateChart
@@ -320,3 +322,20 @@ async def fn2():
320322 assert results ["fn1" ] == "noop ok"
321323 assert "fn2" in errors
322324 assert str (errors ["fn2" ]) == "noop2 is not allowed"
325+
326+
327+ class TestEventQueueRejectFutures :
328+ """Unit tests for EventQueue.reject_futures."""
329+
330+ def test_reject_futures_skips_items_without_future (self ):
331+ """Items with future=None are silently skipped."""
332+ sm = TrafficLight ()
333+
334+ queue = EventQueue ()
335+ td = TriggerData (machine = sm , event = None )
336+ assert td .future is None
337+ queue .put (td )
338+
339+ queue .reject_futures (RuntimeError ("boom" ))
340+ # No exception raised, item still in queue
341+ assert not queue .is_empty ()
You can’t perform that action at this time.
0 commit comments