Skip to content

Commit dbe39f3

Browse files
committed
PYTHON-5202 Advance clusterTime without using ping command
1 parent 9c9528b commit dbe39f3

File tree

2 files changed

+12
-18
lines changed

2 files changed

+12
-18
lines changed

test/asynchronous/unified_format.py

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -222,7 +222,6 @@ def __init__(self, test_class):
222222
self._listeners: Dict[str, EventListenerUtil] = {}
223223
self._session_lsids: Dict[str, Mapping[str, Any]] = {}
224224
self.test: UnifiedSpecTestMixinV1 = test_class
225-
self._cluster_time: Mapping[str, Any] = {}
226225

227226
def __contains__(self, item):
228227
return item in self._entities
@@ -421,13 +420,11 @@ def get_lsid_for_session(self, session_name):
421420
# session has been closed.
422421
return self._session_lsids[session_name]
423422

424-
async def advance_cluster_times(self) -> None:
423+
async def advance_cluster_times(self, cluster_time) -> None:
425424
"""Manually synchronize entities when desired"""
426-
if not self._cluster_time:
427-
self._cluster_time = (await self.test.client.admin.command("ping")).get("$clusterTime")
428425
for entity in self._entities.values():
429-
if isinstance(entity, AsyncClientSession) and self._cluster_time:
430-
entity.advance_cluster_time(self._cluster_time)
426+
if isinstance(entity, AsyncClientSession) and cluster_time:
427+
entity.advance_cluster_time(cluster_time)
431428

432429

433430
class UnifiedSpecTestMixinV1(AsyncIntegrationTest):
@@ -1044,7 +1041,7 @@ async def _testOperation_targetedFailPoint(self, spec):
10441041

10451042
async def _testOperation_createEntities(self, spec):
10461043
await self.entity_map.create_entities_from_spec(spec["entities"], uri=self._uri)
1047-
await self.entity_map.advance_cluster_times()
1044+
await self.entity_map.advance_cluster_times(self._cluster_time)
10481045

10491046
def _testOperation_assertSessionTransactionState(self, spec):
10501047
session = self.entity_map[spec["session"]]
@@ -1446,8 +1443,8 @@ async def _run_scenario(self, spec, uri=None):
14461443
# process initialData
14471444
if "initialData" in self.TEST_SPEC:
14481445
await self.insert_initial_data(self.TEST_SPEC["initialData"])
1449-
self._cluster_time = (await self.client.admin.command("ping")).get("$clusterTime")
1450-
await self.entity_map.advance_cluster_times()
1446+
self._cluster_time = self.client._topology.max_cluster_time()
1447+
await self.entity_map.advance_cluster_times(self._cluster_time)
14511448

14521449
if "expectLogMessages" in spec:
14531450
expect_log_messages = spec["expectLogMessages"]

test/unified_format.py

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -221,7 +221,6 @@ def __init__(self, test_class):
221221
self._listeners: Dict[str, EventListenerUtil] = {}
222222
self._session_lsids: Dict[str, Mapping[str, Any]] = {}
223223
self.test: UnifiedSpecTestMixinV1 = test_class
224-
self._cluster_time: Mapping[str, Any] = {}
225224

226225
def __contains__(self, item):
227226
return item in self._entities
@@ -420,13 +419,11 @@ def get_lsid_for_session(self, session_name):
420419
# session has been closed.
421420
return self._session_lsids[session_name]
422421

423-
def advance_cluster_times(self) -> None:
422+
def advance_cluster_times(self, cluster_time) -> None:
424423
"""Manually synchronize entities when desired"""
425-
if not self._cluster_time:
426-
self._cluster_time = (self.test.client.admin.command("ping")).get("$clusterTime")
427424
for entity in self._entities.values():
428-
if isinstance(entity, ClientSession) and self._cluster_time:
429-
entity.advance_cluster_time(self._cluster_time)
425+
if isinstance(entity, ClientSession) and cluster_time:
426+
entity.advance_cluster_time(cluster_time)
430427

431428

432429
class UnifiedSpecTestMixinV1(IntegrationTest):
@@ -1035,7 +1032,7 @@ def _testOperation_targetedFailPoint(self, spec):
10351032

10361033
def _testOperation_createEntities(self, spec):
10371034
self.entity_map.create_entities_from_spec(spec["entities"], uri=self._uri)
1038-
self.entity_map.advance_cluster_times()
1035+
self.entity_map.advance_cluster_times(self._cluster_time)
10391036

10401037
def _testOperation_assertSessionTransactionState(self, spec):
10411038
session = self.entity_map[spec["session"]]
@@ -1431,8 +1428,8 @@ def _run_scenario(self, spec, uri=None):
14311428
# process initialData
14321429
if "initialData" in self.TEST_SPEC:
14331430
self.insert_initial_data(self.TEST_SPEC["initialData"])
1434-
self._cluster_time = (self.client.admin.command("ping")).get("$clusterTime")
1435-
self.entity_map.advance_cluster_times()
1431+
self._cluster_time = self.client._topology.max_cluster_time()
1432+
self.entity_map.advance_cluster_times(self._cluster_time)
14361433

14371434
if "expectLogMessages" in spec:
14381435
expect_log_messages = spec["expectLogMessages"]

0 commit comments

Comments
 (0)