def testShutdownThreeBrokers(self): brokerB = AccessBroker(DB_URL) brokerC = AccessBroker(DB_URL) def thisOneShutdown(null, broker): print "Done shutting down broker '%s'" % broker def shutEmDown(null): dList = [] for broker in (self.broker, brokerB, brokerC): d = broker.shutdown() if VERBOSE: d.addCallback(thisOneShutdown, broker) dList.append(d) return DeferredList(dList) d = DeferredList([brokerB.startup(), brokerC.startup()]) d.addCallback(shutEmDown) return d
class TestStartupAndShutdown(TestCase): def setUp(self): self.broker = AccessBroker(DB_URL) return self.broker.startup() def testMultipleShutdowns(self): def runner(): for k in xrange(10): yield waitForDeferred(self.broker.shutdown()) d = Deferred() reactor.callLater(0.02, d.callback, None) yield waitForDeferred(d) runner = deferredGenerator(runner) return runner() def testShutdownTwoBrokers(self): brokerB = AccessBroker(DB_URL) def thisOneShutdown(null, broker): print "Done shutting down broker '%s'" % broker def shutEmDown(null): dList = [] for broker in (self.broker, brokerB): d = broker.shutdown() if VERBOSE: d.addCallback(thisOneShutdown, broker) dList.append(d) return DeferredList(dList) d = brokerB.startup() d.addCallback(shutEmDown) return d def testShutdownThreeBrokers(self): brokerB = AccessBroker(DB_URL) brokerC = AccessBroker(DB_URL) def thisOneShutdown(null, broker): print "Done shutting down broker '%s'" % broker def shutEmDown(null): dList = [] for broker in (self.broker, brokerB, brokerC): d = broker.shutdown() if VERBOSE: d.addCallback(thisOneShutdown, broker) dList.append(d) return DeferredList(dList) d = DeferredList([brokerB.startup(), brokerC.startup()]) d.addCallback(shutEmDown) return d