From e6784773dffc65e5ddcfffd3e116c18caf4a496d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Nussbaumer?= <rn@google.com> Date: Tue, 16 Nov 2010 14:46:07 +0100 Subject: [PATCH] Adding unittests for RunningTimeout MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: RenΓ© Nussbaumer <rn@google.com> Reviewed-by: Michael Hanselmann <hansmi@google.com> --- test/ganeti.utils_unittest.py | 36 +++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/test/ganeti.utils_unittest.py b/test/ganeti.utils_unittest.py index 2c46afcb1..7c7e99c92 100755 --- a/test/ganeti.utils_unittest.py +++ b/test/ganeti.utils_unittest.py @@ -2390,5 +2390,41 @@ class TestFileID(testutils.GanetiTestCase): utils.SafeWriteFile(name, None, data="") +class TimeMock: + def __init__(self, values): + self.values = values + + def __call__(self): + return self.values.pop(0) + + +class TestRunningTimeout(unittest.TestCase): + def setUp(self): + self.time_fn = TimeMock([0.0, 0.3, 4.6, 6.5]) + + def testRemainingFloat(self): + timeout = utils.RunningTimeout(5.0, True, _time_fn=self.time_fn) + self.assertAlmostEqual(timeout.Remaining(), 4.7) + self.assertAlmostEqual(timeout.Remaining(), 0.4) + self.assertAlmostEqual(timeout.Remaining(), -1.5) + + def testRemaining(self): + self.time_fn = TimeMock([0, 2, 4, 5, 6]) + timeout = utils.RunningTimeout(5, True, _time_fn=self.time_fn) + self.assertEqual(timeout.Remaining(), 3) + self.assertEqual(timeout.Remaining(), 1) + self.assertEqual(timeout.Remaining(), 0) + self.assertEqual(timeout.Remaining(), -1) + + def testRemainingNonNegative(self): + timeout = utils.RunningTimeout(5.0, False, _time_fn=self.time_fn) + self.assertAlmostEqual(timeout.Remaining(), 4.7) + self.assertAlmostEqual(timeout.Remaining(), 0.4) + self.assertEqual(timeout.Remaining(), 0.0) + + def testNegativeTimeout(self): + self.assertRaises(ValueError, utils.RunningTimeout, -1.0, True) + + if __name__ == '__main__': testutils.GanetiTestProgram() -- GitLab