From 07c834ea3e39f7f5e4c55fea09b208d0164c2901 Mon Sep 17 00:00:00 2001 From: Shane Harvey Date: Wed, 29 Apr 2020 10:21:30 -0700 Subject: [PATCH] PYTHON-2218 Fix race in test_last_write_date --- test/test_max_staleness.py | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/test/test_max_staleness.py b/test/test_max_staleness.py index c313be227..dd9169f28 100644 --- a/test/test_max_staleness.py +++ b/test/test_max_staleness.py @@ -122,15 +122,21 @@ class TestMaxStaleness(unittest.TestCase): # From max-staleness-tests.rst, "Parse lastWriteDate". client = rs_or_single_client(heartbeatFrequencyMS=500) client.pymongo_test.test.insert_one({}) - time.sleep(2) + # Wait for the server description to be updated. + time.sleep(1) server = client._topology.select_server(writable_server_selector) - last_write = server.description.last_write_date - self.assertTrue(last_write) + first = server.description.last_write_date + self.assertTrue(first) + # The first last_write_date may correspond to a internal server write, + # sleep so that the next write does not occur within the same second. + time.sleep(1) client.pymongo_test.test.insert_one({}) - time.sleep(2) + # Wait for the server description to be updated. + time.sleep(1) server = client._topology.select_server(writable_server_selector) - self.assertGreater(server.description.last_write_date, last_write) - self.assertLess(server.description.last_write_date, last_write + 10) + second = server.description.last_write_date + self.assertGreater(second, first) + self.assertLess(second, first + 10) @client_context.require_version_max(3, 3) def test_last_write_date_absent(self):