Example #1
0
    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)