mirror of
https://github.com/flutter/flutter.git
synced 2025-06-03 00:51:18 +00:00
53 lines
1.1 KiB
Python
53 lines
1.1 KiB
Python
# Copyright 2013 The Chromium Authors. All rights reserved.
|
|
# Use of this source code is governed by a BSD-style license that can be
|
|
# found in the LICENSE file.
|
|
|
|
"""Unittests for timeout_and_retry.py."""
|
|
|
|
import unittest
|
|
|
|
from pylib.utils import reraiser_thread
|
|
from pylib.utils import timeout_retry
|
|
|
|
|
|
class TestException(Exception):
|
|
pass
|
|
|
|
|
|
def _NeverEnding(tries):
|
|
tries[0] += 1
|
|
while True:
|
|
pass
|
|
|
|
|
|
def _CountTries(tries):
|
|
tries[0] += 1
|
|
raise TestException
|
|
|
|
|
|
class TestRun(unittest.TestCase):
|
|
"""Tests for timeout_retry.Run."""
|
|
|
|
def testRun(self):
|
|
self.assertTrue(timeout_retry.Run(
|
|
lambda x: x, 30, 3, [True], {}))
|
|
|
|
def testTimeout(self):
|
|
tries = [0]
|
|
self.assertRaises(reraiser_thread.TimeoutError,
|
|
timeout_retry.Run, lambda: _NeverEnding(tries), 0, 3)
|
|
self.assertEqual(tries[0], 4)
|
|
|
|
def testRetries(self):
|
|
tries = [0]
|
|
self.assertRaises(TestException,
|
|
timeout_retry.Run, lambda: _CountTries(tries), 30, 3)
|
|
self.assertEqual(tries[0], 4)
|
|
|
|
def testReturnValue(self):
|
|
self.assertTrue(timeout_retry.Run(lambda: True, 30, 3))
|
|
|
|
|
|
if __name__ == '__main__':
|
|
unittest.main()
|