'If the timeout expires, the retry effect fails with the exception from
the final time the wrapped effect is performed.'

def test_timeout(self):

    expected_intents = [(Delay(1), (lambda ignore: None)), (Delay(2), (lambda ignore: None))]
    exceptions = [Exception('Wrong    (1)'), Exception('Wrong    (2)'), CustomException()]
    def tester():
        raise exceptions.pop(0)
    retrier = retry_effect_with_timeout(Effect(Func(tester)), timeout=3, time=self.get_time([0.0, 1.0, 2.0, 3.0, 4.0, 5.0]))
    self.assertRaises(CustomException, perform_sequence, expected_intents, retrier)
