Exemplo n.º 1
0
    def test_SplitterShutdown(self):
        """If producerFinished or shutdownMicroprocess is received on the 'control' inbox they are passed on and the component shuts down"""
        for msg in [producerFinished(self), shutdownMicroprocess(self)]:
            split = Splitter()
            Dummy = Axon.Component.component()
            split.link((split, "outbox"), (Dummy, "inbox"))
            split.link((split, "signal"), (Dummy, "control"))
            split.activate()

            for _ in xrange(0,10):
                split.next()
            self.assert_(0==len(split.outboxes["outbox"]))
            self.assert_(0==len(split.outboxes["signal"]))

            split._deliver( msg, "control" )
            try:
                for _ in xrange(0,10):
                    split.next()
                self.fail()
            except StopIteration:
                pass
            self.assert_(0==len(split.outboxes["outbox"]))
            self.assert_(1==len(split.outboxes["signal"]))
#            received = split._collect("signal")
            received = Dummy.recv("control")
            self.assert_( msg == received )
Exemplo n.º 2
0
    def test_SplitterShutdown(self):
        """If producerFinished or shutdownMicroprocess is received on the 'control' inbox they are passed on and the component shuts down"""
        for msg in [producerFinished(self), shutdownMicroprocess(self)]:
            split = Splitter()
            Dummy = Axon.Component.component()
            split.link((split, "outbox"), (Dummy, "inbox"))
            split.link((split, "signal"), (Dummy, "control"))
            split.activate()

            for _ in xrange(0, 10):
                split.next()
            self.assert_(0 == len(split.outboxes["outbox"]))
            self.assert_(0 == len(split.outboxes["signal"]))

            split._deliver(msg, "control")
            try:
                for _ in xrange(0, 10):
                    split.next()
                self.fail()
            except StopIteration:
                pass
            self.assert_(0 == len(split.outboxes["outbox"]))
            self.assert_(1 == len(split.outboxes["signal"]))
            #            received = split._collect("signal")
            received = Dummy.recv("control")
            self.assert_(msg == received)
Exemplo n.º 3
0
    def test_PassThroughControlSignal(self):
        """Data sent to the inbox is sent on to the outbox"""
        split = Splitter()
        Dummy = Axon.Component.component()
        split.link((split, "outbox"), (Dummy, "inbox"))
        split.link((split, "signal"), (Dummy, "control"))
        split.activate()

        for i in xrange(1,10):
            split._deliver( i, "control" )
        for _ in xrange(0,100):
            split.next()
        for i in xrange(1,10):
            self.assert_(len(split.outboxes["signal"]))
            self.assert_(0==len(split.outboxes["outbox"]))
#            self.assert_( i == split._collect("signal") )
            self.assert_( i == Dummy.recv("control") )

        for i in xrange(1,10):
            split._deliver( i, "control" )
            split.next()
            split.next()
        for _ in xrange(0,10):
            split.next()
        for i in xrange(1,10):
            self.assert_(len(split.outboxes["signal"]))
            self.assert_(0==len(split.outboxes["outbox"]))
#            self.assert_( i == split._collect("signal") )
            self.assert_( i == Dummy.recv("control") )
Exemplo n.º 4
0
    def test_PassThroughControlSignal(self):
        """Data sent to the inbox is sent on to the outbox"""
        split = Splitter()
        Dummy = Axon.Component.component()
        split.link((split, "outbox"), (Dummy, "inbox"))
        split.link((split, "signal"), (Dummy, "control"))
        split.activate()

        for i in xrange(1, 10):
            split._deliver(i, "control")
        for _ in xrange(0, 100):
            split.next()
        for i in xrange(1, 10):
            self.assert_(len(split.outboxes["signal"]))
            self.assert_(0 == len(split.outboxes["outbox"]))
            #            self.assert_( i == split._collect("signal") )
            self.assert_(i == Dummy.recv("control"))

        for i in xrange(1, 10):
            split._deliver(i, "control")
            split.next()
            split.next()
        for _ in xrange(0, 10):
            split.next()
        for i in xrange(1, 10):
            self.assert_(len(split.outboxes["signal"]))
            self.assert_(0 == len(split.outboxes["outbox"]))
            #            self.assert_( i == split._collect("signal") )
            self.assert_(i == Dummy.recv("control"))