def test_PassThroughControlSignal(self): """Data sent to the inbox is sent on to the outbox""" split = Splitter() 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")) 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"))
def test_PassThroughControlSignal(self): """Data sent to the inbox is sent on to the outbox""" split = Splitter() 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") ) 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") )
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() 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") 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() 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") self.assert_( msg == received )