Пример #1
0
 def testSetAfter(self):
     clock = task.Clock()
     m = StateMachine(None, reactor=clock)
     m.setAfter("foo", 1.0)
     self.assertEquals(None, m.get)
     clock.advance(1.0)
     self.assertEquals("foo", m.get)
Пример #2
0
    def testEventsStateChangeAfter(self):
        clock = task.Clock()
        received = []

        m = StateMachine(None, reactor=clock)
        m.events.addObserver("state-change-after", lambda state, after: received.append((state,after)))
        m.setAfter("foo", 1.1)
        self.assertEquals([("foo", 1.1)], received)
Пример #3
0
 def testDynamicArguments(self):
     self.called = []
     self.args = []
     class Listener:
         def enter_a(s, *a): self.called.append("enter_a"); self.args += a
     m = StateMachine(Listener())
     m.set("a", 12)
     self.assertEquals(self.called, ["enter_a"])
     self.assertEquals(self.args, [12])
     m.set("a", 13)
     self.assertEquals(self.called, ["enter_a", "enter_a"])
     self.assertEquals(self.args, [12,13])
Пример #4
0
 def testExtraListenerWithDynamicAndPredefinedArguments(self):
     self.called = []
     self.args = []
     class Listener:
         post=""
         def enter_a(s, *a): self.called.append("enter_a"+s.post); self.args += a
     m = StateMachine(Listener())
     l2 = Listener()
     l2.post = "2"
     m.addListener(l2, "foo", "bar", 1234)
     m.set("a", "meh")
     self.assertEquals(self.called, ["enter_a", "enter_a2"])
     self.assertEquals(self.args, ["meh", "foo", "bar", 1234, "meh" ])
Пример #5
0
 def testEventsStateAfter(self):
     m = StateMachine(None)
     received = []
     m.events.addObserver("state-change", lambda old, new: received.append((old,new)))
     m.set("foo")
     self.assertEquals([(None, "foo")], received)
     m.set("bar")
     self.assertEquals([(None, "foo"), ("foo", "bar")], received)
     m.set("baz")
     self.assertEquals([(None, "foo"), ("foo", "bar"), ("bar", "baz")], received)
Пример #6
0
    def testEventsBumpAfter(self):
        clock = task.Clock()
        received = []

        m = StateMachine(None, reactor=clock)
        m.events.addObserver("bump-after", lambda after: received.append(after))
        m.setAfter("foo", 1.1)
        clock.advance(0.5)
        m.bumpAfter()
        self.assertEquals([1.1], received)
        m.bumpAfter(2)
        self.assertEquals([1.1, 2], received)
Пример #7
0
    def testCallbacks(self):
        self.called = []
        class Listener:
            def enter_a(s): self.called.append("enter_a")
            def exit_a(s): self.called.append("exit_a")
            def enter_b(s): self.called.append("enter_b")
            def exit_b(s): self.called.append("exit_b")
        m = StateMachine(Listener())
        m.set("a")
        self.assertEquals(self.called, ["enter_a"])

        m.set("a")
        self.assertEquals(self.called, ["enter_a", "exit_a", "enter_a"])

        m.set("b")
        self.assertEquals(self.called, ["enter_a", "exit_a", "enter_a", "exit_a", "enter_b"])

        m.set("a")
        self.assertEquals(self.called, ["enter_a", "exit_a", "enter_a", "exit_a", "enter_b", "exit_b", "enter_a"])
Пример #8
0
 def testExtraListener(self):
     self.called = []
     class Listener:
         post=""
         def enter_a(s): self.called.append("enter_a"+s.post)
         def exit_a(s): self.called.append("exit_a"+s.post)
         def enter_b(s): self.called.append("enter_b"+s.post)
         def exit_b(s): self.called.append("exit_b"+s.post)
     m = StateMachine(Listener())
     l2 = Listener()
     l2.post = "2"
     m.addListener(l2)
     m.set("a")
     self.assertEquals(self.called, ["enter_a", "enter_a2"])
     m.set("b")
     self.assertEquals(self.called, ["enter_a", "enter_a2", "exit_a2", "exit_a", "enter_b", "enter_b2"])
Пример #9
0
 def testGetSet(self):
     m = StateMachine(None)
     m.set("foo")
     self.assertEquals("foo", m.get)