Revision c7d3a832 test/ganeti.utils.retry_unittest.py

b/test/ganeti.utils.retry_unittest.py
34 34
  def setUp(self):
35 35
    testutils.GanetiTestCase.setUp(self)
36 36
    self.retries = 0
37
    self.called = 0
37 38

  
38 39
  @staticmethod
39 40
  def _RaiseRetryAgain():
......
53 54
    else:
54 55
      return True
55 56

  
57
  def _SimpleRetryAndSucceed(self, retries):
58
    self.called += 1
59
    if self.retries < retries:
60
      self.retries += 1
61
      return False
62
    else:
63
      return True
64

  
56 65
  def testRaiseTimeout(self):
57 66
    self.failUnlessRaises(utils.RetryTimeout, utils.Retry,
58 67
                          self._RaiseRetryAgain, 0.01, 0.02)
......
112 121
    else:
113 122
      self.fail("Expected RetryTimeout didn't happen")
114 123

  
124
  def testSimpleRetry(self):
125
    self.assertFalse(utils.SimpleRetry(True, lambda: False, 0.01, 0.02))
126
    self.assertFalse(utils.SimpleRetry(lambda x: x, lambda: False, 0.01, 0.02))
127
    self.assertTrue(utils.SimpleRetry(True, lambda: True, 0, 1))
128
    self.assertTrue(utils.SimpleRetry(lambda x: x, lambda: True, 0, 1))
129
    self.assertTrue(utils.SimpleRetry(True, self._SimpleRetryAndSucceed,
130
                                      0, 1, args=[1]))
131
    self.assertEqual(self.retries, 1)
132
    self.assertEqual(self.called, 2)
133
    self.called = self.retries = 0
134
    self.assertTrue(utils.SimpleRetry(True, self._SimpleRetryAndSucceed,
135
                                      0, 1, args=[2]))
136
    self.assertEqual(self.called, 3)
137

  
115 138

  
116 139
if __name__ == "__main__":
117 140
  testutils.GanetiTestProgram()

Also available in: Unified diff