def test_shutdown(self): """Shuts down in response to a shutdownMicroprocess message""" for msg in [producerFinished(self), shutdownMicroprocess(self)]: chooser = RecordingChooser().activate() for _ in xrange(0, 10): chooser.next() self.assert_(0 == len(chooser.outboxes["outbox"])) self.assert_(0 == len(chooser.outboxes["signal"])) chooser._deliver(msg, "control") try: for _ in xrange(0, 10): chooser.next() self.fail() except StopIteration: pass self.assert_(0 == len(chooser.outboxes["outbox"])) self.assert_(1 == len(chooser.outboxes["signal"])) received = chooser._collect("signal") self.assert_(msg == received)