Revision 45cc4913
b/test/ganeti.utils_unittest.py | ||
---|---|---|
1604 | 1604 |
|
1605 | 1605 |
|
1606 | 1606 |
class TestRetry(testutils.GanetiTestCase): |
1607 |
def setUp(self): |
|
1608 |
testutils.GanetiTestCase.setUp(self) |
|
1609 |
self.retries = 0 |
|
1610 |
|
|
1607 | 1611 |
@staticmethod |
1608 | 1612 |
def _RaiseRetryAgain(): |
1609 | 1613 |
raise utils.RetryAgain() |
... | ... | |
1611 | 1615 |
def _WrongNestedLoop(self): |
1612 | 1616 |
return utils.Retry(self._RaiseRetryAgain, 0.01, 0.02) |
1613 | 1617 |
|
1618 |
def _RetryAndSucceed(self, retries): |
|
1619 |
if self.retries < retries: |
|
1620 |
self.retries += 1 |
|
1621 |
raise utils.RetryAgain() |
|
1622 |
else: |
|
1623 |
return True |
|
1624 |
|
|
1614 | 1625 |
def testRaiseTimeout(self): |
1615 | 1626 |
self.failUnlessRaises(utils.RetryTimeout, utils.Retry, |
1616 | 1627 |
self._RaiseRetryAgain, 0.01, 0.02) |
1628 |
self.failUnlessRaises(utils.RetryTimeout, utils.Retry, |
|
1629 |
self._RetryAndSucceed, 0.01, 0, args=[1]) |
|
1630 |
self.failUnlessEqual(self.retries, 1) |
|
1617 | 1631 |
|
1618 | 1632 |
def testComplete(self): |
1619 | 1633 |
self.failUnlessEqual(utils.Retry(lambda: True, 0, 1), True) |
1634 |
self.failUnlessEqual(utils.Retry(self._RetryAndSucceed, 0, 1, args=[2]), |
|
1635 |
True) |
|
1636 |
self.failUnlessEqual(self.retries, 2) |
|
1620 | 1637 |
|
1621 | 1638 |
def testNestedLoop(self): |
1622 | 1639 |
try: |
Also available in: Unified diff