'Called by L{unittest.TestCase} after the last test in a C{TestCase}
subclass. Ensures the reactor is clean by murdering the threadpool,
catching any pending
L{DelayedCall<twisted.internet.base.DelayedCall>}s, open sockets etc.'

def postClassCleanup(self):

    selectables = self._cleanReactor()
    calls = self._cleanPending()
    if (selectables or calls):
        aggregate = DirtyReactorAggregateError(calls, selectables)
        self.result.addError(self.test, Failure(aggregate))
    self._cleanThreads()
