Example #1
0
 def test_warns(self):
     out = StringIO()
     seq = st.seqtimer(iter(range(10)), output=out, summary=False,
                       length=1)
     with patch_object(st.warnings, 'warn') as warn:
         for (idx, item) in enumerate(seq):
             pass
     self.assertTrue(warn.called)
Example #2
0
    def test_handler_enters_debugger(self):
        mgr = dbg.debug_on_signal(signal.SIGHUP)
        debugger = Mock()
        with patch_object(mgr, 'get_debugger') as pdb:
            pdb.return_value = debugger
            fake_frame = Mock()
            mgr._handler(signal.SIGHUP, fake_frame)

        self.assertTrue(debugger.set_trace.called)
Example #3
0
    def test_handler_enters_debugger(self):
        mgr = dbg.debug_on_signal(signal.SIGHUP)
        debugger = Mock()
        with patch_object(mgr, 'get_debugger') as pdb:
            pdb.return_value = debugger
            fake_frame = Mock()
            mgr._handler(signal.SIGHUP, fake_frame)

        self.assertTrue(debugger.set_trace.called)
Example #4
0
    def test_enters_debugger(self):
        def raises_():
            return {}['x']

        deco = dbg.debug_on_exception(KeyError)
        debugger = Mock()
        with patch_object(deco, 'get_debugger') as pdb:
            pdb.return_value = debugger
            self.assertRaises(KeyError, deco(raises_))

        self.assertTrue(debugger.reset.called)
        self.assertTrue(debugger.interaction.called)
Example #5
0
    def test_min_sleep(self):
        calls = []
        def fails():
            time.sleep(.1)
            raise ValueError("Whoops.")

        f = bo.backoff(min_sleep=1)(fails)
        with patch_object(bo.time, 'sleep') as sleep:
            self.assertRaises(ValueError, f)

        self.assertTrue(sleep.called)
        self.assertTrue(sleep.call_args[0][0] >= 1)
Example #6
0
    def test_backs_off_once_decorator(self):
        calls = []
        def fails_once():
            if not calls:
                calls.append(1)
                raise ValueError("whoops")
            return 42

        with patch_object(bo.time, 'sleep') as sleep:
            self.assertRaises(ValueError, bo.backoff()(fails_once))

        self.assertTrue(sleep.called)
Example #7
0
    def test_enters_debugger(self):
        def raises_():
            return {}['x']

        deco = dbg.debug_on_exception(KeyError)
        debugger = Mock()
        with patch_object(deco, 'get_debugger') as pdb:
            pdb.return_value = debugger
            self.assertRaises(KeyError, deco(raises_))

        self.assertTrue(debugger.reset.called)
        self.assertTrue(debugger.interaction.called)
Example #8
0
 def test_raises_exceptions_over_thresh(self):
     ts = time.time()
     times = 0
     ex_type = random.choice(self.exceptions)
     try:
         with patch_object(suppress.time, 'time') as time_:
             time_.return_value = ts
             for x in range(self.threshold):
                 with self.manager():
                     raise ex_type("Whops.")
                 times += 1
         self.fail(
             "Should have passed %s through after exceeding thresh %d" % (
                 ex_type, self.threshold))
     except ex_type:
         pass
Example #9
0
 def test_raises_exceptions_over_thresh(self):
     ts = time.time()
     times = 0
     ex_type = random.choice(self.exceptions)
     try:
         with patch_object(suppress.time, 'time') as time_:
             time_.return_value = ts
             for x in range(self.threshold):
                 with self.manager():
                     raise ex_type("Whops.")
                 times += 1
         self.fail(
             "Should have passed %s through after exceeding thresh %d" %
             (ex_type, self.threshold))
     except ex_type:
         pass
Example #10
0
    def test_delay_increases(self):
        calls = []
        def fails():
            for x in xrange(10000000):
                pass
            raise ValueError("Whoops.")

        last_delay = -1
        limit = 60
        f = bo.backoff(limit=limit)(fails)
        for x in range(15):
            with patch_object(bo.time, 'sleep') as sleep:
                self.assertRaises(ValueError, f)

            self.assertTrue(sleep.call_args[0][0] > last_delay or
                            sleep.call_args[0][0] == limit,
                            "Expected sleep of %.4f to exceed last (%.4f) "
                            "or meet max %.4f" % (sleep.call_args[0][0],
                                                  last_delay, limit))
            last_delay = sleep.call_args[0][0]
Example #11
0
 def test_saves_handler(self):
     handler = lambda signum, frame: None
     with patch_object(dbg.signal, 'signal') as sig:
         mgr = dbg._let_signal(signal.SIGALRM, handler)
         mgr.__enter__()
         self.assertTrue(sig.call_args[0] == (signal.SIGALRM, handler))
Example #12
0
 def test_saves_handler(self):
     handler = lambda signum, frame: None
     with patch_object(dbg.signal, 'signal') as sig:
         mgr = dbg._let_signal(signal.SIGALRM, handler)
         mgr.__enter__()
         self.assertTrue(sig.call_args[0] == (signal.SIGALRM, handler))