'Passing an object to L{IReactorCore.removeSystemEventTrigger} which was
not returned by a previous call to
L{IReactorCore.addSystemEventTrigger} or which has already been passed
to C{removeSystemEventTrigger} should result in L{TypeError},
L{KeyError}, or L{ValueError} being raised.'

def test_removeNonExistentSystemEventTrigger(self):

    b = self.addTrigger('during', 'test', (lambda : None))
    self.removeTrigger(b)
    self.assertRaises(TypeError, reactor.removeSystemEventTrigger, None)
    self.assertRaises(ValueError, reactor.removeSystemEventTrigger, b)
    self.assertRaises(KeyError, reactor.removeSystemEventTrigger, (b[0], (('xxx',) + b[1][1:])))
