Skip to content

Commit 3c9bac8

Browse files
committed
test(sync): Improve test_sync_rotate to prevent false positives
1 parent 6b039c1 commit 3c9bac8

File tree

1 file changed

+10
-3
lines changed

1 file changed

+10
-3
lines changed

tests/p2p/test_sync_enabled.py

+10-3
Original file line numberDiff line numberDiff line change
@@ -52,13 +52,20 @@ def test_sync_rotate(self):
5252

5353
self.simulator.run(600)
5454

55+
ready = set(conn for conn in connections if conn.proto1.is_state(conn.proto1.PeerState.READY))
56+
self.assertEqual(len(ready), len(other_managers))
57+
5558
enabled = set(conn for conn in connections if conn.proto1.is_sync_enabled())
56-
self.assertTrue(len(enabled), 3)
59+
self.assertEqual(len(enabled), 3)
5760

5861
manager1.connections._sync_rotate_if_needed(force=True)
5962
enabled2 = set(conn for conn in connections if conn.proto1.is_sync_enabled())
60-
self.assertTrue(len(enabled2), 3)
61-
# Chance of false positive: 1/comb(20, 3) = 0.0008771929824561404
63+
self.assertEqual(len(enabled2), 3)
64+
if enabled == enabled2:
65+
manager1.connections._sync_rotate_if_needed(force=True)
66+
enabled2 = set(conn for conn in connections if conn.proto1.is_sync_enabled())
67+
self.assertEqual(len(enabled2), 3)
68+
# Chance of false positive: (1/comb(15, 3))**2 = 0.00000483
6269
self.assertNotEqual(enabled, enabled2)
6370

6471

0 commit comments

Comments
 (0)