Example #1
0
 def test_transition_definitions(self):
     states = ['A', 'B', {'name': 'C', 'children': ['1', '2', '3']}, 'D']
     # Define with list of dictionaries
     transitions = [
         {'trigger': 'walk', 'source': 'A', 'dest': 'B'},
         {'trigger': 'run', 'source': 'B', 'dest': 'C'},
         {'trigger': 'sprint', 'source': 'C', 'dest': 'D'},
         {'trigger': 'run', 'source': 'C_1', 'dest': 'C_2'}
     ]
     m = Machine(states=states, transitions=transitions, initial='A')
     m.walk()
     self.assertEquals(m.state, 'B')
     m.run()
     self.assertEquals(m.state, 'C_1')
     m.run()
     self.assertEquals(m.state, 'C_2')
     # Define with list of lists
     transitions = [
         ['walk', 'A', 'B'],
         ['run', 'B', 'C'],
         ['sprint', 'C', 'D']
     ]
     m = Machine(states=states, transitions=transitions, initial='A')
     m.to_C()
     m.sprint()
     self.assertEquals(m.state, 'D')