Revision e3200b18 test/ganeti.mcpu_unittest.py
b/test/ganeti.mcpu_unittest.py | ||
---|---|---|
27 | 27 |
from ganeti import mcpu |
28 | 28 |
|
29 | 29 |
|
30 |
class TestLockTimeoutStrategy(unittest.TestCase): |
|
30 |
class TestLockAttemptTimeoutStrategy(unittest.TestCase):
|
|
31 | 31 |
def testConstants(self): |
32 |
self.assert_(mcpu._LockTimeoutStrategy._MAX_ATTEMPTS > 0) |
|
33 |
self.assert_(mcpu._LockTimeoutStrategy._ATTEMPT_FACTOR > 1.0) |
|
32 |
tpa = mcpu._LockAttemptTimeoutStrategy._TIMEOUT_PER_ATTEMPT |
|
33 |
self.assert_(len(tpa) > 10) |
|
34 |
self.assert_(sum(tpa) >= 150.0) |
|
34 | 35 |
|
35 | 36 |
def testSimple(self): |
36 |
strat = mcpu._LockTimeoutStrategy(_random_fn=lambda: 0.5) |
|
37 |
strat = mcpu._LockAttemptTimeoutStrategy(_random_fn=lambda: 0.5, |
|
38 |
_time_fn=lambda: 0.0) |
|
37 | 39 |
|
38 |
self.assertEqual(strat._attempts, 0)
|
|
40 |
self.assertEqual(strat._attempt, 0) |
|
39 | 41 |
|
40 | 42 |
prev = None |
41 |
for _ in range(strat._MAX_ATTEMPTS):
|
|
43 |
for _ in range(len(mcpu._LockAttemptTimeoutStrategy._TIMEOUT_PER_ATTEMPT)):
|
|
42 | 44 |
timeout = strat.CalcRemainingTimeout() |
43 | 45 |
self.assert_(timeout is not None) |
44 | 46 |
|
45 | 47 |
self.assert_(timeout <= 10.0) |
46 | 48 |
self.assert_(prev is None or timeout >= prev) |
47 | 49 |
|
48 |
strat.NextAttempt() |
|
50 |
strat = strat.NextAttempt()
|
|
49 | 51 |
|
50 | 52 |
prev = timeout |
51 | 53 |
|
Also available in: Unified diff