|
9 | 9 | def py_cmp(tu1, tu2): |
10 | 10 | return cmp((tu1.time, tu1.bytes), (tu2.time, tu2.bytes)) |
11 | 11 |
|
12 | | -def get_uuids(n=1, version=1): |
13 | | - if version == 1: |
14 | | - u = lambda: uuid.uuid1(random.randint(0, 2**48 - 1)) |
15 | | - elif version == 4: |
16 | | - u = lambda: uuid.uuid4() |
17 | | - else: |
18 | | - raise ValueError |
| 12 | +def get_str_uuids(n): |
19 | 13 | for _ in xrange(n): |
20 | | - yield str(u()) |
| 14 | + yield str(uuid.uuid4()) |
21 | 15 |
|
22 | 16 | class TestTimeUUID(unittest.TestCase): |
23 | 17 | def test_time(self): |
24 | | - for _id in get_uuids(n=5000): |
| 18 | + for _id in get_str_uuids(5000): |
25 | 19 | uu = UUID(_id) |
26 | 20 | tuu = TimeUUID(_id) |
27 | 21 | self.assertEqual(uu.time, tuu.time) |
28 | 22 |
|
29 | 23 | def test_bytes(self): |
30 | | - for _id in get_uuids(n=5000, version=4): |
| 24 | + for _id in get_str_uuids(5000): |
31 | 25 | uu = UUID(_id) |
32 | 26 | tuu = TimeUUID(_id) |
33 | 27 | self.assertEqual(uu.bytes, tuu.bytes) |
34 | 28 |
|
35 | 29 | def test_cmp(self): |
36 | | - uuids = map(lambda s: TimeUUID(s), get_uuids(n=5000)) |
| 30 | + uuids = map(lambda s: TimeUUID(s), get_str_uuids(5000)) |
37 | 31 | random.shuffle(uuids) |
38 | 32 | for _ in xrange(5000): |
39 | 33 | a, b = random.choice(uuids), random.choice(uuids) |
40 | 34 | self.assertEqual(cmp(a, b), py_cmp(a, b)) |
| 35 | + |
| 36 | + for _ in xrange(100): |
| 37 | + i = random.randint(1, 4999) |
| 38 | + self.assertTrue(uuids[i] == uuids[i]) |
| 39 | + self.assertTrue(uuids[i] >= uuids[i]) |
| 40 | + self.assertTrue(uuids[i] <= uuids[i]) |
| 41 | + self.assertFalse(uuids[i] != uuids[i]) |
| 42 | + self.assertFalse(uuids[i - 1] == uuids[i]) |
| 43 | + self.assertTrue(uuids[i - 1] != uuids[i]) |
| 44 | + |
| 45 | + def test_descending(self): |
| 46 | + uuid_strs = list(get_str_uuids(100)) |
| 47 | + uuids = sorted(map(lambda s: TimeUUID(s), uuid_strs)) |
| 48 | + descending_uuids = sorted(map(lambda s: TimeUUID(s, descending=True), |
| 49 | + uuid_strs)) |
| 50 | + self.assertEqual(uuids, descending_uuids[::-1]) |
| 51 | + |
| 52 | + for uu, duu in zip(uuids, descending_uuids[::-1]): |
| 53 | + self.assertTrue(uu == duu) |
| 54 | + self.assertTrue(uu <= duu) |
| 55 | + self.assertTrue(uu >= duu) |
| 56 | + self.assertFalse(uu != duu) |
| 57 | + |
| 58 | + def test_str(self): |
| 59 | + for uuid_str in get_str_uuids(1000): |
| 60 | + tuu = TimeUUID(uuid_str) |
| 61 | + self.assertEqual(uuid_str, str(tuu)) |
| 62 | + self.assertEqual('TimeUUID(%s)' % uuid_str, repr(tuu)) |
0 commit comments