pytransitions / transitions

A lightweight, object-oriented finite state machine implementation in Python with many extensions
MIT License
5.49k stars 524 forks source link

Events defined in nested states are not triggered when processed with `queued=True` #544

Closed aleneum closed 2 years ago

aleneum commented 2 years ago

Describe the bug Events defined in nested states are not correctly triggered when processed with queued=True.

Minimal working example

from transitions.extensions import HierarchicalMachine

states = [
    "initial",
    {'name': 'A', 'children': [{'name': '1', 'on_enter': 'go'}, '2'],
     'transitions': [['go', '1', '2']], 'initial': '1'}
]
machine = HierarchicalMachine(states=states, initial='initial', queued=True)
machine.to_A()
assert machine.state == "A_2"

Expected behavior assert is True