PYTHON-5392 Better test assertions for comparisons (#2350)
Co-authored-by: Noah Stapp <noah@noahstapp.com>
This commit is contained in:
parent
6a672d4dd3
commit
0e407351a4
@ -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"])
|
||||
|
||||
@ -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):
|
||||
|
||||
@ -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()
|
||||
|
||||
|
||||
@ -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):
|
||||
|
||||
@ -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):
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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"])
|
||||
|
||||
@ -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):
|
||||
|
||||
@ -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()
|
||||
|
||||
|
||||
@ -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):
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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):
|
||||
|
||||
Loading…
Reference in New Issue
Block a user