Exemplo n.º 1
0
 def testSetAfterCancelled(self):
     clock = task.Clock()
     m = StateMachine(None, reactor=clock)
     m.setAfter("foo", 1.0)
     self.assertEquals(None, m.get)
     clock.advance(0.5)
     m.set("bar")
     clock.advance(0.5)
     self.assertEquals("bar", m.get)
Exemplo n.º 2
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])
Exemplo n.º 3
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" ])
Exemplo n.º 4
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"])
Exemplo n.º 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)
Exemplo n.º 6
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"])
Exemplo n.º 7
0
 def testGetSet(self):
     m = StateMachine(None)
     m.set("foo")
     self.assertEquals("foo", m.get)