'When canceling a L{Deferred} from a L{DeferredSemaphore} that does
not yet have the semaphore (i.e., the L{Deferred} has not fired),
the cancel should cause a L{defer.CancelledError} failure.'

def test_cancelSemaphoreBeforeAcquired(self):

    sem = defer.DeferredSemaphore(1)
    sem.acquire()
    d = sem.acquire()
    d.cancel()
    self.assertImmediateFailure(d, defer.CancelledError)
