Exemplo n.º 1
0
    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)
Exemplo n.º 2
0
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")
Exemplo n.º 3
0
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')
Exemplo n.º 4
0
    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)
Exemplo n.º 5
0
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')
Exemplo n.º 6
0
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)
Exemplo n.º 7
0
    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)
Exemplo n.º 8
0
    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)
Exemplo n.º 9
0
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)
Exemplo n.º 10
0
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)
Exemplo n.º 11
0
    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)
Exemplo n.º 12
0
    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)
Exemplo n.º 13
0
    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)