Revision 7d444d59 test/ganeti.utils_unittest.py

b/test/ganeti.utils_unittest.py
845 845
    self.assert_(utils.FindMatch(data, "Hello World") is None)
846 846

  
847 847

  
848
class TimeMock:
849
  def __init__(self, values):
850
    self.values = values
851

  
852
  def __call__(self):
853
    return self.values.pop(0)
854

  
855

  
856
class TestRunningTimeout(unittest.TestCase):
857
  def setUp(self):
858
    self.time_fn = TimeMock([0.0, 0.3, 4.6, 6.5])
859

  
860
  def testRemainingFloat(self):
861
    timeout = utils.RunningTimeout(5.0, True, _time_fn=self.time_fn)
862
    self.assertAlmostEqual(timeout.Remaining(), 4.7)
863
    self.assertAlmostEqual(timeout.Remaining(), 0.4)
864
    self.assertAlmostEqual(timeout.Remaining(), -1.5)
865

  
866
  def testRemaining(self):
867
    self.time_fn = TimeMock([0, 2, 4, 5, 6])
868
    timeout = utils.RunningTimeout(5, True, _time_fn=self.time_fn)
869
    self.assertEqual(timeout.Remaining(), 3)
870
    self.assertEqual(timeout.Remaining(), 1)
871
    self.assertEqual(timeout.Remaining(), 0)
872
    self.assertEqual(timeout.Remaining(), -1)
873

  
874
  def testRemainingNonNegative(self):
875
    timeout = utils.RunningTimeout(5.0, False, _time_fn=self.time_fn)
876
    self.assertAlmostEqual(timeout.Remaining(), 4.7)
877
    self.assertAlmostEqual(timeout.Remaining(), 0.4)
878
    self.assertEqual(timeout.Remaining(), 0.0)
879

  
880
  def testNegativeTimeout(self):
881
    self.assertRaises(ValueError, utils.RunningTimeout, -1.0, True)
882

  
883

  
884 848
class TestTryConvert(unittest.TestCase):
885 849
  def test(self):
886 850
    for src, fn, result in [

Also available in: Unified diff