Skip to content

Commit 0e40735

Browse files
PYTHON-5392 Better test assertions for comparisons (#2350)
Co-authored-by: Noah Stapp <[email protected]>
1 parent 6a672d4 commit 0e40735

12 files changed

+27
-23
lines changed

test/asynchronous/test_bulk.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -994,7 +994,7 @@ async def test_write_concern_failure_ordered(self):
994994

995995
# When talking to legacy servers there will be a
996996
# write concern error for each operation.
997-
self.assertTrue(len(details["writeConcernErrors"]) > 0)
997+
self.assertGreater(len(details["writeConcernErrors"]), 0)
998998

999999
failed = details["writeConcernErrors"][0]
10001000
self.assertEqual(64, failed["code"])
@@ -1035,7 +1035,7 @@ async def test_write_concern_failure_ordered(self):
10351035
details,
10361036
)
10371037

1038-
self.assertTrue(len(details["writeConcernErrors"]) > 1)
1038+
self.assertGreater(len(details["writeConcernErrors"]), 1)
10391039
failed = details["writeErrors"][0]
10401040
self.assertIn("duplicate", failed["errmsg"])
10411041

@@ -1073,7 +1073,7 @@ async def test_write_concern_failure_unordered(self):
10731073
self.assertEqual(0, len(details["writeErrors"]))
10741074
# When talking to legacy servers there will be a
10751075
# write concern error for each operation.
1076-
self.assertTrue(len(details["writeConcernErrors"]) > 1)
1076+
self.assertGreater(len(details["writeConcernErrors"]), 1)
10771077

10781078
await self.coll.delete_many({})
10791079
await self.coll.create_index("a", unique=True)
@@ -1100,7 +1100,7 @@ async def test_write_concern_failure_unordered(self):
11001100
self.assertEqual(1, len(details["writeErrors"]))
11011101
# When talking to legacy servers there will be a
11021102
# write concern error for each operation.
1103-
self.assertTrue(len(details["writeConcernErrors"]) > 1)
1103+
self.assertGreater(len(details["writeConcernErrors"]), 1)
11041104

11051105
failed = details["writeErrors"][0]
11061106
self.assertEqual(2, failed["index"])

test/asynchronous/test_client.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1005,7 +1005,7 @@ async def test_list_databases(self):
10051005
cursor = await self.client.list_databases()
10061006
self.assertIsInstance(cursor, AsyncCommandCursor)
10071007
helper_docs = await cursor.to_list()
1008-
self.assertTrue(len(helper_docs) > 0)
1008+
self.assertGreater(len(helper_docs), 0)
10091009
self.assertEqual(len(helper_docs), len(cmd_docs))
10101010
# PYTHON-3529 Some fields may change between calls, just compare names.
10111011
for helper_doc, cmd_doc in zip(helper_docs, cmd_docs):

test/asynchronous/test_collection.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -500,7 +500,7 @@ async def test_index_text(self):
500500
# Sort by 'score' field.
501501
cursor.sort([("score", {"$meta": "textScore"})])
502502
results = await cursor.to_list()
503-
self.assertTrue(results[0]["score"] >= results[1]["score"])
503+
self.assertGreaterEqual(results[0]["score"], results[1]["score"])
504504

505505
await db.test.drop_indexes()
506506

test/asynchronous/test_database.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -239,7 +239,7 @@ async def test_check_exists(self):
239239
listener.reset()
240240
await db.drop_collection("unique")
241241
await db.create_collection("unique", check_exists=False)
242-
self.assertTrue(len(listener.started_events) > 0)
242+
self.assertGreater(len(listener.started_events), 0)
243243
self.assertNotIn("listCollections", listener.started_command_names())
244244

245245
async def test_list_collections(self):

test/asynchronous/test_pooling.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -331,8 +331,9 @@ async def test_wait_queue_timeout(self):
331331
pass
332332

333333
duration = time.time() - start
334-
self.assertTrue(
335-
abs(wait_queue_timeout - duration) < 1,
334+
self.assertLess(
335+
abs(wait_queue_timeout - duration),
336+
1,
336337
f"Waited {duration:.2f} seconds for a socket, expected {wait_queue_timeout:f}",
337338
)
338339

@@ -547,7 +548,7 @@ async def f():
547548

548549
await async_joinall(tasks)
549550
self.assertEqual(ntasks, self.n_passed)
550-
self.assertTrue(len(cx_pool.conns) > 1)
551+
self.assertGreater(len(cx_pool.conns), 1)
551552
self.assertEqual(0, cx_pool.requests)
552553

553554
async def test_max_pool_size_none(self):
@@ -578,7 +579,7 @@ async def f():
578579

579580
await async_joinall(tasks)
580581
self.assertEqual(ntasks, self.n_passed)
581-
self.assertTrue(len(cx_pool.conns) > 1)
582+
self.assertGreater(len(cx_pool.conns), 1)
582583
self.assertEqual(cx_pool.max_pool_size, float("inf"))
583584

584585
async def test_max_pool_size_zero(self):

test/test_bson.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1045,6 +1045,8 @@ def test_exception_wrapping(self):
10451045

10461046
def test_minkey_maxkey_comparison(self):
10471047
# MinKey's <, <=, >, >=, !=, and ==.
1048+
# These tests should be kept as assertTrue as opposed to using unittest's built-in comparison assertions because
1049+
# MinKey and MaxKey define their own __ge__, __le__, and other comparison attributes, and we want to explicitly test that.
10481050
self.assertTrue(MinKey() < None)
10491051
self.assertTrue(MinKey() < 1)
10501052
self.assertTrue(MinKey() <= 1)

test/test_bulk.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -992,7 +992,7 @@ def test_write_concern_failure_ordered(self):
992992

993993
# When talking to legacy servers there will be a
994994
# write concern error for each operation.
995-
self.assertTrue(len(details["writeConcernErrors"]) > 0)
995+
self.assertGreater(len(details["writeConcernErrors"]), 0)
996996

997997
failed = details["writeConcernErrors"][0]
998998
self.assertEqual(64, failed["code"])
@@ -1033,7 +1033,7 @@ def test_write_concern_failure_ordered(self):
10331033
details,
10341034
)
10351035

1036-
self.assertTrue(len(details["writeConcernErrors"]) > 1)
1036+
self.assertGreater(len(details["writeConcernErrors"]), 1)
10371037
failed = details["writeErrors"][0]
10381038
self.assertIn("duplicate", failed["errmsg"])
10391039

@@ -1069,7 +1069,7 @@ def test_write_concern_failure_unordered(self):
10691069
self.assertEqual(0, len(details["writeErrors"]))
10701070
# When talking to legacy servers there will be a
10711071
# write concern error for each operation.
1072-
self.assertTrue(len(details["writeConcernErrors"]) > 1)
1072+
self.assertGreater(len(details["writeConcernErrors"]), 1)
10731073

10741074
self.coll.delete_many({})
10751075
self.coll.create_index("a", unique=True)
@@ -1096,7 +1096,7 @@ def test_write_concern_failure_unordered(self):
10961096
self.assertEqual(1, len(details["writeErrors"]))
10971097
# When talking to legacy servers there will be a
10981098
# write concern error for each operation.
1099-
self.assertTrue(len(details["writeConcernErrors"]) > 1)
1099+
self.assertGreater(len(details["writeConcernErrors"]), 1)
11001100

11011101
failed = details["writeErrors"][0]
11021102
self.assertEqual(2, failed["index"])

test/test_client.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -978,7 +978,7 @@ def test_list_databases(self):
978978
cursor = self.client.list_databases()
979979
self.assertIsInstance(cursor, CommandCursor)
980980
helper_docs = cursor.to_list()
981-
self.assertTrue(len(helper_docs) > 0)
981+
self.assertGreater(len(helper_docs), 0)
982982
self.assertEqual(len(helper_docs), len(cmd_docs))
983983
# PYTHON-3529 Some fields may change between calls, just compare names.
984984
for helper_doc, cmd_doc in zip(helper_docs, cmd_docs):

test/test_collection.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -490,7 +490,7 @@ def test_index_text(self):
490490
# Sort by 'score' field.
491491
cursor.sort([("score", {"$meta": "textScore"})])
492492
results = cursor.to_list()
493-
self.assertTrue(results[0]["score"] >= results[1]["score"])
493+
self.assertGreaterEqual(results[0]["score"], results[1]["score"])
494494

495495
db.test.drop_indexes()
496496

test/test_database.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -238,7 +238,7 @@ def test_check_exists(self):
238238
listener.reset()
239239
db.drop_collection("unique")
240240
db.create_collection("unique", check_exists=False)
241-
self.assertTrue(len(listener.started_events) > 0)
241+
self.assertGreater(len(listener.started_events), 0)
242242
self.assertNotIn("listCollections", listener.started_command_names())
243243

244244
def test_list_collections(self):

test/test_objectid.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ def test_generation_time(self):
9292

9393
self.assertEqual(utc, d2.tzinfo)
9494
d2 = d2.replace(tzinfo=None)
95-
self.assertTrue(d2 - d1 < datetime.timedelta(seconds=2))
95+
self.assertLess(d2 - d1, datetime.timedelta(seconds=2))
9696

9797
def test_from_datetime(self):
9898
d = datetime.datetime.now(tz=datetime.timezone.utc).replace(tzinfo=None)

test/test_pooling.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -331,8 +331,9 @@ def test_wait_queue_timeout(self):
331331
pass
332332

333333
duration = time.time() - start
334-
self.assertTrue(
335-
abs(wait_queue_timeout - duration) < 1,
334+
self.assertLess(
335+
abs(wait_queue_timeout - duration),
336+
1,
336337
f"Waited {duration:.2f} seconds for a socket, expected {wait_queue_timeout:f}",
337338
)
338339

@@ -545,7 +546,7 @@ def f():
545546

546547
joinall(tasks)
547548
self.assertEqual(ntasks, self.n_passed)
548-
self.assertTrue(len(cx_pool.conns) > 1)
549+
self.assertGreater(len(cx_pool.conns), 1)
549550
self.assertEqual(0, cx_pool.requests)
550551

551552
def test_max_pool_size_none(self):
@@ -576,7 +577,7 @@ def f():
576577

577578
joinall(tasks)
578579
self.assertEqual(ntasks, self.n_passed)
579-
self.assertTrue(len(cx_pool.conns) > 1)
580+
self.assertGreater(len(cx_pool.conns), 1)
580581
self.assertEqual(cx_pool.max_pool_size, float("inf"))
581582

582583
def test_max_pool_size_zero(self):

0 commit comments

Comments
 (0)