Revision 7d444d59 test/ganeti.utils.algo_unittest.py
b/test/ganeti.utils.algo_unittest.py | ||
---|---|---|
219 | 219 |
msg="Key function was not called once per value") |
220 | 220 |
|
221 | 221 |
|
222 |
class TimeMock: |
|
223 |
def __init__(self, values): |
|
224 |
self.values = values |
|
225 |
|
|
226 |
def __call__(self): |
|
227 |
return self.values.pop(0) |
|
228 |
|
|
229 |
|
|
230 |
class TestRunningTimeout(unittest.TestCase): |
|
231 |
def setUp(self): |
|
232 |
self.time_fn = TimeMock([0.0, 0.3, 4.6, 6.5]) |
|
233 |
|
|
234 |
def testRemainingFloat(self): |
|
235 |
timeout = algo.RunningTimeout(5.0, True, _time_fn=self.time_fn) |
|
236 |
self.assertAlmostEqual(timeout.Remaining(), 4.7) |
|
237 |
self.assertAlmostEqual(timeout.Remaining(), 0.4) |
|
238 |
self.assertAlmostEqual(timeout.Remaining(), -1.5) |
|
239 |
|
|
240 |
def testRemaining(self): |
|
241 |
self.time_fn = TimeMock([0, 2, 4, 5, 6]) |
|
242 |
timeout = algo.RunningTimeout(5, True, _time_fn=self.time_fn) |
|
243 |
self.assertEqual(timeout.Remaining(), 3) |
|
244 |
self.assertEqual(timeout.Remaining(), 1) |
|
245 |
self.assertEqual(timeout.Remaining(), 0) |
|
246 |
self.assertEqual(timeout.Remaining(), -1) |
|
247 |
|
|
248 |
def testRemainingNonNegative(self): |
|
249 |
timeout = algo.RunningTimeout(5.0, False, _time_fn=self.time_fn) |
|
250 |
self.assertAlmostEqual(timeout.Remaining(), 4.7) |
|
251 |
self.assertAlmostEqual(timeout.Remaining(), 0.4) |
|
252 |
self.assertEqual(timeout.Remaining(), 0.0) |
|
253 |
|
|
254 |
def testNegativeTimeout(self): |
|
255 |
self.assertRaises(ValueError, algo.RunningTimeout, -1.0, True) |
|
256 |
|
|
257 |
|
|
222 | 258 |
if __name__ == "__main__": |
223 | 259 |
testutils.GanetiTestProgram() |
Also available in: Unified diff