Exemplo n.º 1
0
    def test_with_nest(self):
        def on_timeout_1(start_time):
            nonlocal called1
            self.assertGreaterEqual(time.time() - start_time, 0.05)
            called1 = True

        def on_timeout_2(start_time):
            nonlocal called2
            nonlocal count
            count += 1
            called2 = True

        called1 = False
        called2 = False
        count = 0

        start = time.time()
        with xtimeout.check_context(50, on_timeout_1):
            start1 = time.clock()
            while time.clock() - start1 < 0.1:
                for i in range(2):
                    start2 = time.clock()
                    with xtimeout.check_context(10, on_timeout_2):
                        busy(0.1)

        self.assertEqual(count, 2)
        self.assertTrue(called1)
        self.assertTrue(called2)
Exemplo n.º 2
0
    def test_break(self):
        def on_timeout(start_time):
            raise TimeoutError

        with self.assertRaises(TimeoutError):
            with xtimeout.check_context(50, on_timeout):
                busy(0.1)
Exemplo n.º 3
0
    def test_with(self):
        def on_timout(start_time):
            nonlocal called
            called = True

        called = False
        with xtimeout.check_context(10, on_timout):
            busy(0.1)
        self.assertTrue(called)
Exemplo n.º 4
0
    def test_loop(self):
        def on_timeout(start_time):
            raise TimeoutError

        start = time.time()
        with self.assertRaises(TimeoutError):
            with xtimeout.check_context(200, on_timeout):
                busy(-1)
        elapsed = time.time() - start
        self.assertAlmostEqual(elapsed, 0.2, delta=0.05)
Exemplo n.º 5
0
    def test_reset(self):
        def ont_time(start_time):
            raise TimeoutError

        count = 0
        with self.assertRaises(TimeoutError):
            with xtimeout.check_context(250, ont_time) as context:
                for i in range(1, 5):
                    count = i
                    # timeout on 300ms
                    busy(0.1 * i)
                    context.reset()
        self.assertEqual(count, 3)
Exemplo n.º 6
0
    def test_trace_recover(self):
        def dummy_trace(*args):
            pass

        def on_timeout(start_time):
            self.assertEqual(sys.gettrace(), dummy_trace)
            raise TimeoutError

        old_trace = sys.gettrace()
        sys.settrace(dummy_trace)
        try:
            with self.assertRaises(TimeoutError):
                with xtimeout.check_context(50, on_timeout):
                    busy(-1)
        finally:
            sys.settrace(old_trace)
Exemplo n.º 7
0
 def thfunc():
     with self.assertRaises(TimeoutError):
         with xtimeout.check_context(50, on_timeout):
             busy(-1)