11from unittest import TestCase
22from unittest .mock import patch
33
4- from maxcube .deadline import Timeout
4+ from maxcube .deadline import Deadline , Timeout
55
66ZERO_TIMEOUT = Timeout ("zero" , 0 )
77ONE_TIMEOUT = Timeout ("one" , 1 )
@@ -14,48 +14,48 @@ class TestDeadline(TestCase):
1414
1515 def testDeadlineLowerBoundForRemainingTime (self , timeMock ):
1616 timeMock .side_effect = [0 , 0.4 , 0.6 ]
17- deadline = ONE_TIMEOUT . deadline ( )
17+ deadline = Deadline ( ONE_TIMEOUT )
1818 self .assertAlmostEqual (0.6 , deadline .remaining (lower_bound = 0.50 ))
1919 self .assertAlmostEqual (0.5 , deadline .remaining (lower_bound = 0.50 ))
2020
2121 def testDeadlineUpperBoundForRemainingTime (self , timeMock ):
2222 timeMock .side_effect = [0 , 0.4 , 0.6 ]
23- deadline = ONE_TIMEOUT . deadline ( )
23+ deadline = Deadline ( ONE_TIMEOUT )
2424 self .assertAlmostEqual (0.5 , deadline .remaining (upper_bound = 0.50 ))
2525 self .assertAlmostEqual (0.4 , deadline .remaining (upper_bound = 0.50 ))
2626
2727 def testDeadlineIsExpired (self , timeMock ):
2828 timeMock .side_effect = [0 , 0.4 , 1.0 , 1.000001 ]
29- deadline = ONE_TIMEOUT . deadline ( )
29+ deadline = Deadline ( ONE_TIMEOUT )
3030 self .assertFalse (deadline .is_expired ())
3131 self .assertTrue (deadline .is_expired ())
3232 self .assertTrue (deadline .is_expired ())
3333
3434 def testZeroDeadlineIsAlreadyExpired (self , timeMock ):
35- timeMock .side_effect = [ 0.0 , 0.0 ]
36- deadline = ZERO_TIMEOUT . deadline ( )
37- self .assertEqual ("zero" , deadline .fullname ())
35+ timeMock .return_value = 0.0
36+ deadline = Deadline ( ZERO_TIMEOUT )
37+ self .assertEqual ("zero[0/0] " , deadline .fullname ())
3838 self .assertTrue (deadline .is_expired ())
3939
4040 def testSubtimeoutHandling (self , timeMock ):
41- timeMock .side_effect = [0.0 , 0.1 , 0.2 ]
42- deadline = ROOT_TIMEOUT . deadline ( )
41+ timeMock .side_effect = [0.0 , 0.1 , 0.2 , 0.2 , 0.3 ]
42+ deadline = Deadline ( ROOT_TIMEOUT )
4343 subdeadline = deadline .subtimeout (ONE_TIMEOUT )
44- self .assertEqual ("root:one" , subdeadline .fullname ())
45- self .assertAlmostEqual (0.9 , subdeadline .remaining ())
44+ self .assertEqual ("root[9.8/10] :one[0.9/1] " , subdeadline .fullname ())
45+ self .assertAlmostEqual (0.8 , subdeadline .remaining ())
4646
4747 def testSubtimeoutHandlingWhenLargerThanTimeout (self , timeMock ):
4848 timeMock .side_effect = [0.0 , 9.1 , 9.2 ]
49- deadline = ROOT_TIMEOUT . deadline ( )
49+ deadline = Deadline ( ROOT_TIMEOUT )
5050 subdeadline = deadline .subtimeout (ONE_TIMEOUT )
5151 self .assertAlmostEqual (0.8 , subdeadline .remaining ())
5252
5353 def testToString (self , timeMock ):
5454 timeMock .side_effect = [0.0 , 0.1 ]
55- deadline = ONE_TIMEOUT . deadline ( )
56- self .assertEqual ("Deadline one will expire in 0.900 seconds " , str (deadline ))
55+ deadline = Deadline ( ONE_TIMEOUT )
56+ self .assertEqual ("Deadline one[0.9/1] " , str (deadline ))
5757
5858 def testToStringForExpiredDeadline (self , timeMock ):
5959 timeMock .side_effect = [0.0 , 1.1 ]
60- deadline = ONE_TIMEOUT . deadline ( )
61- self .assertEqual ("Deadline one expired 0.100 seconds ago " , str (deadline ))
60+ deadline = Deadline ( ONE_TIMEOUT )
61+ self .assertEqual ("Deadline one[0/1] " , str (deadline ))
0 commit comments