From 3c9bac8f2da9901a30d9a0c81613954ac5c93189 Mon Sep 17 00:00:00 2001 From: Marcelo Salhab Brogliato Date: Tue, 17 Oct 2023 18:56:19 -0500 Subject: [PATCH] test(sync): Improve test_sync_rotate to prevent false positives --- tests/p2p/test_sync_enabled.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/tests/p2p/test_sync_enabled.py b/tests/p2p/test_sync_enabled.py index a62f9c041..a352c08a0 100644 --- a/tests/p2p/test_sync_enabled.py +++ b/tests/p2p/test_sync_enabled.py @@ -52,13 +52,20 @@ def test_sync_rotate(self): self.simulator.run(600) + ready = set(conn for conn in connections if conn.proto1.is_state(conn.proto1.PeerState.READY)) + self.assertEqual(len(ready), len(other_managers)) + enabled = set(conn for conn in connections if conn.proto1.is_sync_enabled()) - self.assertTrue(len(enabled), 3) + self.assertEqual(len(enabled), 3) manager1.connections._sync_rotate_if_needed(force=True) enabled2 = set(conn for conn in connections if conn.proto1.is_sync_enabled()) - self.assertTrue(len(enabled2), 3) - # Chance of false positive: 1/comb(20, 3) = 0.0008771929824561404 + self.assertEqual(len(enabled2), 3) + if enabled == enabled2: + manager1.connections._sync_rotate_if_needed(force=True) + enabled2 = set(conn for conn in connections if conn.proto1.is_sync_enabled()) + self.assertEqual(len(enabled2), 3) + # Chance of false positive: (1/comb(15, 3))**2 = 0.00000483 self.assertNotEqual(enabled, enabled2)