'The ``Deferred`` returned by ``gather_deferreds`` does not fire until
all the supplied ``deferreds`` have either erred back or called back.'

@capture_logging((lambda self, logger: logger.flush_tracebacks(ZeroDivisionError)))
def test_fire_when_all_fired(self, logger):

    d1 = Deferred()
    d2 = Deferred()
    d3 = Deferred()
    gathering = gather_deferreds([d1, d2, d3])
    d2.errback(ZeroDivisionError('test_consume_errors1'))
    self.assertNoResult(gathering)
    d1.callback(None)
    d3.callback(None)
    self.failureResultOf(gathering)
