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