Skip to content

Commit 31b83bc

Browse files
committed
PYTHON-807 Silence DeprecationWarnings in getlasterror tests.
1 parent 8e794bc commit 31b83bc

File tree

3 files changed

+62
-48
lines changed

3 files changed

+62
-48
lines changed

test/test_collection.py

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -948,15 +948,19 @@ def test_unique_index(self):
948948
db.test.save({"hello": "world"})
949949
db.test.save({"hello": "mike"})
950950
db.test.save({"hello": "world"})
951-
self.assertFalse(db.error())
952951

953952
db.drop_collection("test")
954953
db.test.create_index("hello", unique=True)
955954

956955
db.test.save({"hello": "world"})
957956
db.test.save({"hello": "mike"})
958-
db.test.save({"hello": "world"}, w=0)
959-
self.assertTrue(db.error())
957+
958+
self.client.start_request()
959+
try:
960+
db.test.save({"hello": "world"}, w=0)
961+
self.assertTrue(db.command('getlasterror').get('err'))
962+
finally:
963+
self.client.end_request()
960964

961965
def test_duplicate_key_error(self):
962966
db = self.db
@@ -1039,11 +1043,11 @@ def test_continue_on_error(self):
10391043
docs.append({"five": 5})
10401044

10411045
db.test.insert(docs, manipulate=False, w=0)
1042-
self.assertEqual(11000, db.error()['code'])
1046+
self.assertEqual(11000, db.command('getlasterror')['code'])
10431047
self.assertEqual(1, db.test.count())
10441048

10451049
db.test.insert(docs, manipulate=False, continue_on_error=True, w=0)
1046-
self.assertEqual(11000, db.error()['code'])
1050+
self.assertEqual(11000, db.command('getlasterror')['code'])
10471051
self.assertEqual(4, db.test.count())
10481052

10491053
db.drop_collection("test")
@@ -1053,11 +1057,11 @@ def test_continue_on_error(self):
10531057
docs[2]["_id"] = oid
10541058

10551059
db.test.insert(docs, manipulate=False, w=0)
1056-
self.assertEqual(11000, db.error()['code'])
1060+
self.assertEqual(11000, db.command('getlasterror')['code'])
10571061
self.assertEqual(3, db.test.count())
10581062

10591063
db.test.insert(docs, manipulate=False, continue_on_error=True, w=0)
1060-
self.assertEqual(11000, db.error()['code'])
1064+
self.assertEqual(11000, db.command('getlasterror')['code'])
10611065
self.assertEqual(6, db.test.count())
10621066

10631067
def test_error_code(self):
@@ -1095,7 +1099,7 @@ def test_safe_insert(self):
10951099
a = {"hello": "world"}
10961100
db.test.insert(a)
10971101
db.test.insert(a, w=0)
1098-
self.assertTrue("E11000" in db.error()["err"])
1102+
self.assertTrue("E11000" in db.command('getlasterror')["err"])
10991103

11001104
self.assertRaises(OperationFailure, db.test.insert, a)
11011105

@@ -1201,11 +1205,11 @@ def test_safe_update(self):
12011205
None, db.test.update({"_id": id}, {"$inc": {"x": 1}}, w=0))
12021206

12031207
if v19:
1204-
self.assertTrue("E11000" in db.error()["err"])
1208+
self.assertTrue("E11000" in db.command('getlasterror')["err"])
12051209
elif v113minus:
1206-
self.assertTrue(db.error()["err"].startswith("E11001"))
1210+
self.assertTrue(db.command('getlasterror')["err"].startswith("E11001"))
12071211
else:
1208-
self.assertTrue(db.error()["err"].startswith("E12011"))
1212+
self.assertTrue(db.command('getlasterror')["err"].startswith("E12011"))
12091213

12101214
self.assertRaises(OperationFailure, db.test.update,
12111215
{"_id": id}, {"$inc": {"x": 1}})
@@ -1266,7 +1270,7 @@ def test_safe_save(self):
12661270

12671271
db.test.save({"hello": "world"})
12681272
db.test.save({"hello": "world"}, w=0)
1269-
self.assertTrue("E11000" in db.error()["err"])
1273+
self.assertTrue("E11000" in db.command('getlasterror')["err"])
12701274

12711275
self.assertRaises(OperationFailure, db.test.save,
12721276
{"hello": "world"})

test/test_database.py

Lines changed: 43 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -253,36 +253,40 @@ def test_errors(self):
253253
if is_mongos(self.client):
254254
raise SkipTest('getpreverror not supported by mongos')
255255
db = self.client.pymongo_test
256-
257-
db.reset_error_history()
258-
self.assertEqual(None, db.error())
259-
self.assertEqual(None, db.previous_error())
260-
261-
db.command("forceerror", check=False)
262-
self.assertTrue(db.error())
263-
self.assertTrue(db.previous_error())
264-
265-
db.command("forceerror", check=False)
266-
self.assertTrue(db.error())
267-
prev_error = db.previous_error()
268-
self.assertEqual(prev_error["nPrev"], 1)
269-
del prev_error["nPrev"]
270-
prev_error.pop("lastOp", None)
271-
error = db.error()
272-
error.pop("lastOp", None)
273-
# getLastError includes "connectionId" in recent
274-
# server versions, getPrevError does not.
275-
error.pop("connectionId", None)
276-
self.assertEqual(error, prev_error)
277-
278-
db.test.find_one()
279-
self.assertEqual(None, db.error())
280-
self.assertTrue(db.previous_error())
281-
self.assertEqual(db.previous_error()["nPrev"], 2)
282-
283-
db.reset_error_history()
284-
self.assertEqual(None, db.error())
285-
self.assertEqual(None, db.previous_error())
256+
ctx = catch_warnings()
257+
try:
258+
warnings.simplefilter("ignore", DeprecationWarning)
259+
db.reset_error_history()
260+
self.assertEqual(None, db.error())
261+
self.assertEqual(None, db.previous_error())
262+
263+
db.command("forceerror", check=False)
264+
self.assertTrue(db.error())
265+
self.assertTrue(db.previous_error())
266+
267+
db.command("forceerror", check=False)
268+
self.assertTrue(db.error())
269+
prev_error = db.previous_error()
270+
self.assertEqual(prev_error["nPrev"], 1)
271+
del prev_error["nPrev"]
272+
prev_error.pop("lastOp", None)
273+
error = db.error()
274+
error.pop("lastOp", None)
275+
# getLastError includes "connectionId" in recent
276+
# server versions, getPrevError does not.
277+
error.pop("connectionId", None)
278+
self.assertEqual(error, prev_error)
279+
280+
db.test.find_one()
281+
self.assertEqual(None, db.error())
282+
self.assertTrue(db.previous_error())
283+
self.assertEqual(db.previous_error()["nPrev"], 2)
284+
285+
db.reset_error_history()
286+
self.assertEqual(None, db.error())
287+
self.assertEqual(None, db.previous_error())
288+
finally:
289+
ctx.exit()
286290

287291
def test_command(self):
288292
db = self.client.admin
@@ -331,11 +335,16 @@ def test_last_status(self):
331335
db.test.remove({})
332336
db.test.save({"i": 1})
333337

334-
db.test.update({"i": 1}, {"$set": {"i": 2}}, w=0)
335-
self.assertTrue(db.last_status()["updatedExisting"])
338+
ctx = catch_warnings()
339+
try:
340+
warnings.simplefilter("ignore", DeprecationWarning)
341+
db.test.update({"i": 1}, {"$set": {"i": 2}}, w=0)
342+
self.assertTrue(db.last_status()["updatedExisting"])
336343

337-
db.test.update({"i": 1}, {"$set": {"i": 500}}, w=0)
338-
self.assertFalse(db.last_status()["updatedExisting"])
344+
db.test.update({"i": 1}, {"$set": {"i": 500}}, w=0)
345+
self.assertFalse(db.last_status()["updatedExisting"])
346+
finally:
347+
ctx.exit()
339348

340349
def test_password_digest(self):
341350
self.assertRaises(TypeError, auth._password_digest, 5)

test/test_pooling_base.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,8 @@ def run_mongo_thread(self):
134134
for _ in xrange(N):
135135
self.client.start_request()
136136
self.db.unique.insert({"_id": "jesse"}, w=0)
137-
self.ut.assertNotEqual(None, self.db.error())
137+
self.ut.assertNotEqual(None,
138+
self.db.command('getlasterror').get('err'))
138139
self.client.end_request()
139140

140141

@@ -152,7 +153,7 @@ def run_mongo_thread(self):
152153
errors = 0
153154
for _ in xrange(N):
154155
self.db.unique.insert({"_id": "jesse"}, w=0)
155-
if not self.db.error():
156+
if not self.db.command("getlasterror").get("err"):
156157
errors += 1
157158

158159
self.client.end_request()

0 commit comments

Comments
 (0)