123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- from __future__ import absolute_import
-
- import pickle
-
- from heapq import heappush
- from time import time
-
- from kombu.clocks import LamportClock, timetuple
-
- from .case import Mock, Case
-
-
- class test_LamportClock(Case):
-
- def test_clocks(self):
- c1 = LamportClock()
- c2 = LamportClock()
-
- c1.forward()
- c2.forward()
- c1.forward()
- c1.forward()
- c2.adjust(c1.value)
- self.assertEqual(c2.value, c1.value + 1)
- self.assertTrue(repr(c1))
-
- c2_val = c2.value
- c2.forward()
- c2.forward()
- c2.adjust(c1.value)
- self.assertEqual(c2.value, c2_val + 2 + 1)
-
- c1.adjust(c2.value)
- self.assertEqual(c1.value, c2.value + 1)
-
- def test_sort(self):
- c = LamportClock()
- pid1 = 'a.example.com:312'
- pid2 = 'b.example.com:311'
-
- events = []
-
- m1 = (c.forward(), pid1)
- heappush(events, m1)
- m2 = (c.forward(), pid2)
- heappush(events, m2)
- m3 = (c.forward(), pid1)
- heappush(events, m3)
- m4 = (30, pid1)
- heappush(events, m4)
- m5 = (30, pid2)
- heappush(events, m5)
-
- self.assertEqual(str(c), str(c.value))
-
- self.assertEqual(c.sort_heap(events), m1)
- self.assertEqual(c.sort_heap([m4, m5]), m4)
- self.assertEqual(c.sort_heap([m4, m5, m1]), m4)
-
-
- class test_timetuple(Case):
-
- def test_repr(self):
- x = timetuple(133, time(), 'id', Mock())
- self.assertTrue(repr(x))
-
- def test_pickleable(self):
- x = timetuple(133, time(), 'id', 'obj')
- self.assertEqual(pickle.loads(pickle.dumps(x)), tuple(x))
-
- def test_order(self):
- t1 = time()
- t2 = time() + 300 # windows clock not reliable
- a = timetuple(133, t1, 'A', 'obj')
- b = timetuple(140, t1, 'A', 'obj')
- self.assertTrue(a.__getnewargs__())
- self.assertEqual(a.clock, 133)
- self.assertEqual(a.timestamp, t1)
- self.assertEqual(a.id, 'A')
- self.assertEqual(a.obj, 'obj')
- self.assertTrue(
- a <= b,
- )
- self.assertTrue(
- b >= a,
- )
-
- self.assertEqual(
- timetuple(134, time(), 'A', 'obj').__lt__(tuple()),
- NotImplemented,
- )
- self.assertGreater(
- timetuple(134, t2, 'A', 'obj'),
- timetuple(133, t1, 'A', 'obj'),
- )
- self.assertGreater(
- timetuple(134, t1, 'B', 'obj'),
- timetuple(134, t1, 'A', 'obj'),
- )
-
- self.assertGreater(
- timetuple(None, t2, 'B', 'obj'),
- timetuple(None, t1, 'A', 'obj'),
- )
|