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 )
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)
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") )
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"))