本文整理汇总了Python中fysom.Fysom.transition方法的典型用法代码示例。如果您正苦于以下问题:Python Fysom.transition方法的具体用法?Python Fysom.transition怎么用?Python Fysom.transition使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类fysom.Fysom
的用法示例。
在下文中一共展示了Fysom.transition方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: FysomAsynchronousStateTransitionTests
# 需要导入模块: from fysom import Fysom [as 别名]
# 或者: from fysom.Fysom import transition [as 别名]
class FysomAsynchronousStateTransitionTests(unittest.TestCase):
def on_leave_foo(self, e):
self.leave_foo_event = e
return False
def on_enter_bar(self, e):
self.on_enter_bar_fired = True
self.on_enter_bar_event = e
def setUp(self):
self.on_enter_bar_fired = False
self.fsm = Fysom({
'initial': 'foo',
'events': [
{'name': 'footobar', 'src': 'foo', 'dst': 'bar'},
{'name': 'bartobar', 'src': 'bar', 'dst': 'bar'},
],
'callbacks': {
'onleavefoo': self.on_leave_foo,
'onenterbar': self.on_enter_bar,
}
})
def test_fsm_should_be_put_on_hold_when_onleave_state_returns_false(self):
self.fsm.footobar(id=123)
self.assertEqual(self.fsm.current, 'foo')
self.assertTrue(hasattr(self, 'leave_foo_event'), 'Callback onleavefoo did not fire.')
self.assertTrue(self.leave_foo_event is not None)
self.assertEqual(self.leave_foo_event.id, 123)
self.fsm.transition()
self.assertEqual(self.fsm.current, 'bar')
def test_onenter_state_should_not_fire_when_fsm_is_put_on_hold(self):
self.fsm.footobar(id=123)
self.assertFalse(self.on_enter_bar_fired)
self.fsm.transition()
self.assertTrue(self.on_enter_bar_fired)
def test_should_raise_exception_upon_further_transitions_when_fsm_is_on_hold(self):
self.fsm.footobar(id=123)
self.assertRaises(FysomError, self.fsm.bartobar)