def test_goto(self): fsm = Fysom({ 'initial': 'green', 'events': [ {'name': 'warn', 'src': 'green', 'dst': 'yellow'}, {'name': 'panic', 'src': 'yellow', 'dst': 'red'}, {'name': 'panic', 'src': 'green', 'dst': 'red'}, {'name': 'calm', 'src': 'red', 'dst': 'yellow'}, {'name': 'clear', 'src': 'yellow', 'dst': 'green'} ] }) self.assertRaises(MultiplePossibilitesFound, fsm.next) self.assertEqual('red', fsm.goto('panic'))
def test_no_possibility_for_goto(self): fsm = Fysom({ 'initial': 'green', 'events': [ {'name': 'warn', 'src': 'green', 'dst': 'yellow'}, {'name': 'panic', 'src': 'yellow', 'dst': 'red'}, {'name': 'panic', 'src': 'green', 'dst': 'red'}, # when call panic from green, we go to red, from red we # should go to yellow, but it is commented and we should # have a exception # {'name': 'calm', 'src': 'red', 'dst': 'yellow'}, {'name': 'clear', 'src': 'yellow', 'dst': 'green'} ] }) self.assertRaises(MultiplePossibilitesFound, fsm.next) self.assertEqual('red', fsm.goto('panic')) self.assertRaises(NoPossibilityFound, fsm.goto, 'calm')