'If a first L{Deferred} with a L{Failure} result is returned from a
callback on a second L{Deferred}, the first L{Deferred}\'s result is
converted to L{None} and no unhandled error is logged when it is
garbage collected.'

def test_synchronousImplicitErrorChain(self):

    first = defer.fail(RuntimeError("First    Deferred's    Failure"))
    second = defer.Deferred()
    second.addCallback((lambda ign, first=first: first))
    second.callback(None)
    firstResult = []
    first.addCallback(firstResult.append)
    self.assertIsNone(firstResult[0])
    self.assertImmediateFailure(second, RuntimeError)
