def build_machine(self): # Going around and around in circles self.state_telling_false = NamedEventState('telling_false') self.state_telling_truth = NamedEventState( 'telling_truth', true=self.state_telling_false) self.state_telling_false.update({'true': self.state_telling_truth}) self.machine = state.StateMachine(self.state_telling_truth)
class TraverseCircularTestCase(TestCase): @setup def build_machine(self): # Going around and around in circles self.state_telling_false = NamedEventState("telling_false") self.state_telling_truth = NamedEventState("telling_truth", true=self.state_telling_false) self.state_telling_false.update({"true": self.state_telling_truth}) self.machine = state.StateMachine(self.state_telling_truth) def test_transition(self): assert_raises(state.CircularTransitionError, self.machine.transition, "true")
class TraverseCircularTestCase(TestCase): @setup def build_machine(self): # Going around and around in circles self.state_telling_false = NamedEventState('telling_false') self.state_telling_truth = NamedEventState( 'telling_truth', true=self.state_telling_false) self.state_telling_false.update({'true': self.state_telling_truth}) self.machine = state.StateMachine(self.state_telling_truth) def test_transition(self): assert_raises(state.CircularTransitionError, self.machine.transition, 'true')
def build_machine(self): # Going around and around in circles self.state_telling_false = NamedEventState("telling_false") self.state_telling_truth = NamedEventState("telling_truth", true=self.state_telling_false) self.state_telling_false.update({"true": self.state_telling_truth}) self.machine = state.StateMachine(self.state_telling_truth)
class TestCircular(TestCase): @setup def build_machine(self): # Going around and around in circles self.state_telling_false = NamedEventState('telling_false') self.state_telling_truth = NamedEventState('telling_truth', true=self.state_telling_false ) self.state_telling_false.update({ 'true': self.state_telling_truth, }) self.machine = state.StateMachine(self.state_telling_truth) def test(self): assert_raises(state.CircularTransitionError, self.machine.transition, 'true')
class StateMachineMultiOptionTestCase(TestCase): @setup def build_machine(self): # Generalized rules of a conversation # If they are talking, we should listen # If they are listening, we should talk # If they are ignoring us we should get angry self.state_ignoring = NamedEventState('ignoring') self.state_talking = NamedEventState('talking') self.state_angry = NamedEventState('angry') self.state_listening = NamedEventState( 'listening', listening=self.state_talking, ) self.state_talking.update({ 'ignoring': self.state_angry, 'talking': self.state_listening, }) self.machine = state.StateMachine(self.state_listening) def test_transition_many(self): # Talking, we should listen self.machine.transition("talking") assert_equal(self.machine.state, self.state_listening) # Now be polite self.machine.transition("listening") assert_equal(self.machine.state, self.state_talking) self.machine.transition("listening") assert_equal(self.machine.state, self.state_talking) # But they are tired of us... self.machine.transition("ignoring") assert_equal(self.machine.state, self.state_angry) def test_transition_set(self): expected = {'listening', 'talking', 'ignoring'} assert_equal(set(self.machine.transitions), expected)
def build_machine(self): # Generalized rules of a conversation # If they are talking, we should listen # If they are listening, we should talk # If they are ignoring us we should get angry self.state_ignoring = NamedEventState('ignoring') self.state_talking = NamedEventState('talking') self.state_angry = NamedEventState('angry') self.state_listening = NamedEventState('listening', listening=self.state_talking) self.state_talking.update({ 'ignoring': self.state_angry, 'talking': self.state_listening, }) self.machine = state.StateMachine(self.state_listening)
def build_machine(self): # Going around and around in circles self.state_telling_false = NamedEventState('telling_false') self.state_telling_truth = NamedEventState('telling_truth', true=self.state_telling_false ) self.state_telling_false.update({ 'true': self.state_telling_truth, }) self.machine = state.StateMachine(self.state_telling_truth)
class MultiOptionTestCase(TestCase): @setup def build_machine(self): # Generalized rules of a conversation # If they are talking, we should listen # If they are listening, we should talk # If they are ignoring us we should get angry self.state_ignoring = NamedEventState('ignoring') self.state_talking = NamedEventState('talking') self.state_angry = NamedEventState('angry') self.state_listening = NamedEventState('listening', listening=self.state_talking ) self.state_talking.update({ 'ignoring': self.state_angry, 'talking': self.state_listening, }) self.machine = state.StateMachine(self.state_listening) def test(self): # Talking, we should listen self.machine.transition("talking") assert_equal(self.machine.state, self.state_listening) # Now be polite self.machine.transition("listening") assert_equal(self.machine.state, self.state_talking) self.machine.transition("listening") assert_equal(self.machine.state, self.state_talking) # But they are tired of us... self.machine.transition("ignoring") assert_equal(self.machine.state, self.state_angry)
class StateMachineMultiOptionTestCase(TestCase): @setup def build_machine(self): # Generalized rules of a conversation # If they are talking, we should listen # If they are listening, we should talk # If they are ignoring us we should get angry self.state_ignoring = NamedEventState("ignoring") self.state_talking = NamedEventState("talking") self.state_angry = NamedEventState("angry") self.state_listening = NamedEventState("listening", listening=self.state_talking) self.state_talking.update({"ignoring": self.state_angry, "talking": self.state_listening}) self.machine = state.StateMachine(self.state_listening) def test_transition_many(self): # Talking, we should listen self.machine.transition("talking") assert_equal(self.machine.state, self.state_listening) # Now be polite self.machine.transition("listening") assert_equal(self.machine.state, self.state_talking) self.machine.transition("listening") assert_equal(self.machine.state, self.state_talking) # But they are tired of us... self.machine.transition("ignoring") assert_equal(self.machine.state, self.state_angry) def test_transition_set(self): expected = set(["listening", "talking", "ignoring"]) assert_equal(set(self.machine.transitions), expected)
def build_machine(self): # Generalized rules of a conversation # If they are talking, we should listen # If they are listening, we should talk # If they are ignoring us we should get angry self.state_ignoring = NamedEventState("ignoring") self.state_talking = NamedEventState("talking") self.state_angry = NamedEventState("angry") self.state_listening = NamedEventState("listening", listening=self.state_talking) self.state_talking.update({"ignoring": self.state_angry, "talking": self.state_listening}) self.machine = state.StateMachine(self.state_listening)
def build_machine(self): # Generalized rules of a conversation # If they are talking, we should listen # If they are listening, we should talk # If they are ignoring us we should get angry self.state_ignoring = NamedEventState('ignoring') self.state_talking = NamedEventState('talking') self.state_angry = NamedEventState('angry') self.state_listening = NamedEventState('listening', listening=self.state_talking ) self.state_talking.update({ 'ignoring': self.state_angry, 'talking': self.state_listening, }) self.machine = state.StateMachine(self.state_listening)
def build_machine(self): self.state_green = NamedEventState('green') self.state_red = NamedEventState('red', true=self.state_green) self.machine = state.StateMachine(self.state_red)