PYTHON-5392 Better test assertions for comparisons (#2350)

Co-authored-by: Noah Stapp <noah@noahstapp.com>
This commit is contained in:
Iris 2025-06-27 14:06:00 -07:00 committed by GitHub
parent 6a672d4dd3
commit 0e407351a4
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
12 changed files with 27 additions and 23 deletions

View File

@ -994,7 +994,7 @@ class AsyncTestBulkWriteConcern(AsyncBulkTestBase):
# When talking to legacy servers there will be a
# write concern error for each operation.
self.assertTrue(len(details["writeConcernErrors"]) > 0)
self.assertGreater(len(details["writeConcernErrors"]), 0)
failed = details["writeConcernErrors"][0]
self.assertEqual(64, failed["code"])
@ -1035,7 +1035,7 @@ class AsyncTestBulkWriteConcern(AsyncBulkTestBase):
details,
)
self.assertTrue(len(details["writeConcernErrors"]) > 1)
self.assertGreater(len(details["writeConcernErrors"]), 1)
failed = details["writeErrors"][0]
self.assertIn("duplicate", failed["errmsg"])
@ -1073,7 +1073,7 @@ class AsyncTestBulkWriteConcern(AsyncBulkTestBase):
self.assertEqual(0, len(details["writeErrors"]))
# When talking to legacy servers there will be a
# write concern error for each operation.
self.assertTrue(len(details["writeConcernErrors"]) > 1)
self.assertGreater(len(details["writeConcernErrors"]), 1)
await self.coll.delete_many({})
await self.coll.create_index("a", unique=True)
@ -1100,7 +1100,7 @@ class AsyncTestBulkWriteConcern(AsyncBulkTestBase):
self.assertEqual(1, len(details["writeErrors"]))
# When talking to legacy servers there will be a
# write concern error for each operation.
self.assertTrue(len(details["writeConcernErrors"]) > 1)
self.assertGreater(len(details["writeConcernErrors"]), 1)
failed = details["writeErrors"][0]
self.assertEqual(2, failed["index"])

View File

@ -1005,7 +1005,7 @@ class TestClient(AsyncIntegrationTest):
cursor = await self.client.list_databases()
self.assertIsInstance(cursor, AsyncCommandCursor)
helper_docs = await cursor.to_list()
self.assertTrue(len(helper_docs) > 0)
self.assertGreater(len(helper_docs), 0)
self.assertEqual(len(helper_docs), len(cmd_docs))
# PYTHON-3529 Some fields may change between calls, just compare names.
for helper_doc, cmd_doc in zip(helper_docs, cmd_docs):

View File

@ -500,7 +500,7 @@ class AsyncTestCollection(AsyncIntegrationTest):
# Sort by 'score' field.
cursor.sort([("score", {"$meta": "textScore"})])
results = await cursor.to_list()
self.assertTrue(results[0]["score"] >= results[1]["score"])
self.assertGreaterEqual(results[0]["score"], results[1]["score"])
await db.test.drop_indexes()

View File

@ -239,7 +239,7 @@ class TestDatabase(AsyncIntegrationTest):
listener.reset()
await db.drop_collection("unique")
await db.create_collection("unique", check_exists=False)
self.assertTrue(len(listener.started_events) > 0)
self.assertGreater(len(listener.started_events), 0)
self.assertNotIn("listCollections", listener.started_command_names())
async def test_list_collections(self):

View File

@ -331,8 +331,9 @@ class TestPooling(_TestPoolingBase):
pass
duration = time.time() - start
self.assertTrue(
abs(wait_queue_timeout - duration) < 1,
self.assertLess(
abs(wait_queue_timeout - duration),
1,
f"Waited {duration:.2f} seconds for a socket, expected {wait_queue_timeout:f}",
)
@ -547,7 +548,7 @@ class TestPoolMaxSize(_TestPoolingBase):
await async_joinall(tasks)
self.assertEqual(ntasks, self.n_passed)
self.assertTrue(len(cx_pool.conns) > 1)
self.assertGreater(len(cx_pool.conns), 1)
self.assertEqual(0, cx_pool.requests)
async def test_max_pool_size_none(self):
@ -578,7 +579,7 @@ class TestPoolMaxSize(_TestPoolingBase):
await async_joinall(tasks)
self.assertEqual(ntasks, self.n_passed)
self.assertTrue(len(cx_pool.conns) > 1)
self.assertGreater(len(cx_pool.conns), 1)
self.assertEqual(cx_pool.max_pool_size, float("inf"))
async def test_max_pool_size_zero(self):

View File

@ -1045,6 +1045,8 @@ class TestBSON(unittest.TestCase):
def test_minkey_maxkey_comparison(self):
# MinKey's <, <=, >, >=, !=, and ==.
# These tests should be kept as assertTrue as opposed to using unittest's built-in comparison assertions because
# MinKey and MaxKey define their own __ge__, __le__, and other comparison attributes, and we want to explicitly test that.
self.assertTrue(MinKey() < None)
self.assertTrue(MinKey() < 1)
self.assertTrue(MinKey() <= 1)

View File

@ -992,7 +992,7 @@ class TestBulkWriteConcern(BulkTestBase):
# When talking to legacy servers there will be a
# write concern error for each operation.
self.assertTrue(len(details["writeConcernErrors"]) > 0)
self.assertGreater(len(details["writeConcernErrors"]), 0)
failed = details["writeConcernErrors"][0]
self.assertEqual(64, failed["code"])
@ -1033,7 +1033,7 @@ class TestBulkWriteConcern(BulkTestBase):
details,
)
self.assertTrue(len(details["writeConcernErrors"]) > 1)
self.assertGreater(len(details["writeConcernErrors"]), 1)
failed = details["writeErrors"][0]
self.assertIn("duplicate", failed["errmsg"])
@ -1069,7 +1069,7 @@ class TestBulkWriteConcern(BulkTestBase):
self.assertEqual(0, len(details["writeErrors"]))
# When talking to legacy servers there will be a
# write concern error for each operation.
self.assertTrue(len(details["writeConcernErrors"]) > 1)
self.assertGreater(len(details["writeConcernErrors"]), 1)
self.coll.delete_many({})
self.coll.create_index("a", unique=True)
@ -1096,7 +1096,7 @@ class TestBulkWriteConcern(BulkTestBase):
self.assertEqual(1, len(details["writeErrors"]))
# When talking to legacy servers there will be a
# write concern error for each operation.
self.assertTrue(len(details["writeConcernErrors"]) > 1)
self.assertGreater(len(details["writeConcernErrors"]), 1)
failed = details["writeErrors"][0]
self.assertEqual(2, failed["index"])

View File

@ -978,7 +978,7 @@ class TestClient(IntegrationTest):
cursor = self.client.list_databases()
self.assertIsInstance(cursor, CommandCursor)
helper_docs = cursor.to_list()
self.assertTrue(len(helper_docs) > 0)
self.assertGreater(len(helper_docs), 0)
self.assertEqual(len(helper_docs), len(cmd_docs))
# PYTHON-3529 Some fields may change between calls, just compare names.
for helper_doc, cmd_doc in zip(helper_docs, cmd_docs):

View File

@ -490,7 +490,7 @@ class TestCollection(IntegrationTest):
# Sort by 'score' field.
cursor.sort([("score", {"$meta": "textScore"})])
results = cursor.to_list()
self.assertTrue(results[0]["score"] >= results[1]["score"])
self.assertGreaterEqual(results[0]["score"], results[1]["score"])
db.test.drop_indexes()

View File

@ -238,7 +238,7 @@ class TestDatabase(IntegrationTest):
listener.reset()
db.drop_collection("unique")
db.create_collection("unique", check_exists=False)
self.assertTrue(len(listener.started_events) > 0)
self.assertGreater(len(listener.started_events), 0)
self.assertNotIn("listCollections", listener.started_command_names())
def test_list_collections(self):

View File

@ -92,7 +92,7 @@ class TestObjectId(unittest.TestCase):
self.assertEqual(utc, d2.tzinfo)
d2 = d2.replace(tzinfo=None)
self.assertTrue(d2 - d1 < datetime.timedelta(seconds=2))
self.assertLess(d2 - d1, datetime.timedelta(seconds=2))
def test_from_datetime(self):
d = datetime.datetime.now(tz=datetime.timezone.utc).replace(tzinfo=None)

View File

@ -331,8 +331,9 @@ class TestPooling(_TestPoolingBase):
pass
duration = time.time() - start
self.assertTrue(
abs(wait_queue_timeout - duration) < 1,
self.assertLess(
abs(wait_queue_timeout - duration),
1,
f"Waited {duration:.2f} seconds for a socket, expected {wait_queue_timeout:f}",
)
@ -545,7 +546,7 @@ class TestPoolMaxSize(_TestPoolingBase):
joinall(tasks)
self.assertEqual(ntasks, self.n_passed)
self.assertTrue(len(cx_pool.conns) > 1)
self.assertGreater(len(cx_pool.conns), 1)
self.assertEqual(0, cx_pool.requests)
def test_max_pool_size_none(self):
@ -576,7 +577,7 @@ class TestPoolMaxSize(_TestPoolingBase):
joinall(tasks)
self.assertEqual(ntasks, self.n_passed)
self.assertTrue(len(cx_pool.conns) > 1)
self.assertGreater(len(cx_pool.conns), 1)
self.assertEqual(cx_pool.max_pool_size, float("inf"))
def test_max_pool_size_zero(self):