Skip to content

Commit 5e47df3

Browse files
committed
add none check and refactor test
1 parent 69f5a6a commit 5e47df3

File tree

3 files changed

+35
-79
lines changed

3 files changed

+35
-79
lines changed

pymongo/pool_options.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -386,7 +386,9 @@ def __init__(
386386

387387
def _update_metadata(self, driver: DriverInfo) -> None:
388388
"""Updates the client's metadata"""
389-
if driver.name.lower() in self.__metadata["driver"]["name"].lower().split("|"):
389+
if driver.name and driver.name.lower() in self.__metadata["driver"]["name"].lower().split(
390+
"|"
391+
):
390392
return
391393

392394
metadata = copy.deepcopy(self.__metadata)

test/asynchronous/test_client_metadata.py

Lines changed: 16 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -107,15 +107,20 @@ async def check_metadata_added(
107107
new_name, new_version, new_platform, new_metadata = await self.send_ping_and_get_metadata(
108108
client, True
109109
)
110-
self.assertEqual(new_name, f"{name}|{add_name}" if add_name is not None else name)
111-
self.assertEqual(
112-
new_version,
113-
f"{version}|{add_version}" if add_version is not None else version,
114-
)
115-
self.assertEqual(
116-
new_platform,
117-
f"{platform}|{add_platform}" if add_platform is not None else platform,
118-
)
110+
if add_name is not None and add_name.lower() in name.lower().split("|"):
111+
self.assertEqual(name, new_name)
112+
self.assertEqual(version, new_version)
113+
self.assertEqual(platform, new_platform)
114+
else:
115+
self.assertEqual(new_name, f"{name}|{add_name}" if add_name is not None else name)
116+
self.assertEqual(
117+
new_version,
118+
f"{version}|{add_version}" if add_version is not None else version,
119+
)
120+
self.assertEqual(
121+
new_platform,
122+
f"{platform}|{add_platform}" if add_platform is not None else platform,
123+
)
119124

120125
metadata.pop("driver")
121126
metadata.pop("platform")
@@ -216,39 +221,11 @@ async def test_duplicate_driver_name_no_op(self):
216221
maxIdleTimeMS=1,
217222
)
218223
client.append_metadata(DriverInfo("library", "1.2", "Library Platform"))
219-
# send initial metadata
220-
name, version, platform, metadata = await self.send_ping_and_get_metadata(client, True)
221-
# wait for connection to become idle
222-
await asyncio.sleep(0.005)
223-
224-
# add new metadata
225-
client.append_metadata(DriverInfo("framework", None, None))
226-
new_name, new_version, new_platform, new_metadata = await self.send_ping_and_get_metadata(
227-
client, True
228-
)
229-
self.assertEqual(new_name, f"{name}|framework")
230-
self.assertEqual(new_version, version)
231-
self.assertEqual(new_platform, platform)
232-
233-
metadata.pop("driver")
234-
metadata.pop("platform")
235-
new_metadata.pop("driver")
236-
new_metadata.pop("platform")
237-
self.assertEqual(metadata, new_metadata)
238-
224+
await self.check_metadata_added(client, "framework", None, None)
239225
# wait for connection to become idle
240226
await asyncio.sleep(0.005)
241227
# add same metadata again
242-
client.append_metadata(DriverInfo("Framework", None, None))
243-
(
244-
same_name,
245-
same_version,
246-
same_platform,
247-
same_metadata,
248-
) = await self.send_ping_and_get_metadata(client, True)
249-
self.assertEqual(new_name, same_name)
250-
self.assertEqual(new_version, same_version)
251-
self.assertEqual(new_platform, same_platform)
228+
await self.check_metadata_added(client, "Framework", None, None)
252229

253230

254231
if __name__ == "__main__":

test/test_client_metadata.py

Lines changed: 16 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -107,15 +107,20 @@ def check_metadata_added(
107107
new_name, new_version, new_platform, new_metadata = self.send_ping_and_get_metadata(
108108
client, True
109109
)
110-
self.assertEqual(new_name, f"{name}|{add_name}" if add_name is not None else name)
111-
self.assertEqual(
112-
new_version,
113-
f"{version}|{add_version}" if add_version is not None else version,
114-
)
115-
self.assertEqual(
116-
new_platform,
117-
f"{platform}|{add_platform}" if add_platform is not None else platform,
118-
)
110+
if add_name is not None and add_name.lower() in name.lower().split("|"):
111+
self.assertEqual(name, new_name)
112+
self.assertEqual(version, new_version)
113+
self.assertEqual(platform, new_platform)
114+
else:
115+
self.assertEqual(new_name, f"{name}|{add_name}" if add_name is not None else name)
116+
self.assertEqual(
117+
new_version,
118+
f"{version}|{add_version}" if add_version is not None else version,
119+
)
120+
self.assertEqual(
121+
new_platform,
122+
f"{platform}|{add_platform}" if add_platform is not None else platform,
123+
)
119124

120125
metadata.pop("driver")
121126
metadata.pop("platform")
@@ -216,39 +221,11 @@ def test_duplicate_driver_name_no_op(self):
216221
maxIdleTimeMS=1,
217222
)
218223
client.append_metadata(DriverInfo("library", "1.2", "Library Platform"))
219-
# send initial metadata
220-
name, version, platform, metadata = self.send_ping_and_get_metadata(client, True)
221-
# wait for connection to become idle
222-
time.sleep(0.005)
223-
224-
# add new metadata
225-
client.append_metadata(DriverInfo("framework", None, None))
226-
new_name, new_version, new_platform, new_metadata = self.send_ping_and_get_metadata(
227-
client, True
228-
)
229-
self.assertEqual(new_name, f"{name}|framework")
230-
self.assertEqual(new_version, version)
231-
self.assertEqual(new_platform, platform)
232-
233-
metadata.pop("driver")
234-
metadata.pop("platform")
235-
new_metadata.pop("driver")
236-
new_metadata.pop("platform")
237-
self.assertEqual(metadata, new_metadata)
238-
224+
self.check_metadata_added(client, "framework", None, None)
239225
# wait for connection to become idle
240226
time.sleep(0.005)
241227
# add same metadata again
242-
client.append_metadata(DriverInfo("Framework", None, None))
243-
(
244-
same_name,
245-
same_version,
246-
same_platform,
247-
same_metadata,
248-
) = self.send_ping_and_get_metadata(client, True)
249-
self.assertEqual(new_name, same_name)
250-
self.assertEqual(new_version, same_version)
251-
self.assertEqual(new_platform, same_platform)
228+
self.check_metadata_added(client, "Framework", None, None)
252229

253230

254231
if __name__ == "__main__":

0 commit comments

Comments
 (0)