From 31b83bc0e032571da1bbb1769ea740bf679dc45a Mon Sep 17 00:00:00 2001 From: "A. Jesse Jiryu Davis" Date: Sat, 20 Dec 2014 22:58:27 -0600 Subject: [PATCH] PYTHON-807 Silence DeprecationWarnings in getlasterror tests. --- test/test_collection.py | 28 +++++++++------- test/test_database.py | 69 ++++++++++++++++++++++----------------- test/test_pooling_base.py | 5 +-- 3 files changed, 58 insertions(+), 44 deletions(-) diff --git a/test/test_collection.py b/test/test_collection.py index 60e77ac5c..f33cdda34 100644 --- a/test/test_collection.py +++ b/test/test_collection.py @@ -948,15 +948,19 @@ class TestCollection(unittest.TestCase): db.test.save({"hello": "world"}) db.test.save({"hello": "mike"}) db.test.save({"hello": "world"}) - self.assertFalse(db.error()) db.drop_collection("test") db.test.create_index("hello", unique=True) db.test.save({"hello": "world"}) db.test.save({"hello": "mike"}) - db.test.save({"hello": "world"}, w=0) - self.assertTrue(db.error()) + + self.client.start_request() + try: + db.test.save({"hello": "world"}, w=0) + self.assertTrue(db.command('getlasterror').get('err')) + finally: + self.client.end_request() def test_duplicate_key_error(self): db = self.db @@ -1039,11 +1043,11 @@ class TestCollection(unittest.TestCase): docs.append({"five": 5}) db.test.insert(docs, manipulate=False, w=0) - self.assertEqual(11000, db.error()['code']) + self.assertEqual(11000, db.command('getlasterror')['code']) self.assertEqual(1, db.test.count()) db.test.insert(docs, manipulate=False, continue_on_error=True, w=0) - self.assertEqual(11000, db.error()['code']) + self.assertEqual(11000, db.command('getlasterror')['code']) self.assertEqual(4, db.test.count()) db.drop_collection("test") @@ -1053,11 +1057,11 @@ class TestCollection(unittest.TestCase): docs[2]["_id"] = oid db.test.insert(docs, manipulate=False, w=0) - self.assertEqual(11000, db.error()['code']) + self.assertEqual(11000, db.command('getlasterror')['code']) self.assertEqual(3, db.test.count()) db.test.insert(docs, manipulate=False, continue_on_error=True, w=0) - self.assertEqual(11000, db.error()['code']) + self.assertEqual(11000, db.command('getlasterror')['code']) self.assertEqual(6, db.test.count()) def test_error_code(self): @@ -1095,7 +1099,7 @@ class TestCollection(unittest.TestCase): a = {"hello": "world"} db.test.insert(a) db.test.insert(a, w=0) - self.assertTrue("E11000" in db.error()["err"]) + self.assertTrue("E11000" in db.command('getlasterror')["err"]) self.assertRaises(OperationFailure, db.test.insert, a) @@ -1201,11 +1205,11 @@ class TestCollection(unittest.TestCase): None, db.test.update({"_id": id}, {"$inc": {"x": 1}}, w=0)) if v19: - self.assertTrue("E11000" in db.error()["err"]) + self.assertTrue("E11000" in db.command('getlasterror')["err"]) elif v113minus: - self.assertTrue(db.error()["err"].startswith("E11001")) + self.assertTrue(db.command('getlasterror')["err"].startswith("E11001")) else: - self.assertTrue(db.error()["err"].startswith("E12011")) + self.assertTrue(db.command('getlasterror')["err"].startswith("E12011")) self.assertRaises(OperationFailure, db.test.update, {"_id": id}, {"$inc": {"x": 1}}) @@ -1266,7 +1270,7 @@ class TestCollection(unittest.TestCase): db.test.save({"hello": "world"}) db.test.save({"hello": "world"}, w=0) - self.assertTrue("E11000" in db.error()["err"]) + self.assertTrue("E11000" in db.command('getlasterror')["err"]) self.assertRaises(OperationFailure, db.test.save, {"hello": "world"}) diff --git a/test/test_database.py b/test/test_database.py index b12bb7d8f..f866d92f2 100644 --- a/test/test_database.py +++ b/test/test_database.py @@ -253,36 +253,40 @@ class TestDatabase(unittest.TestCase): if is_mongos(self.client): raise SkipTest('getpreverror not supported by mongos') db = self.client.pymongo_test + ctx = catch_warnings() + try: + warnings.simplefilter("ignore", DeprecationWarning) + db.reset_error_history() + self.assertEqual(None, db.error()) + self.assertEqual(None, db.previous_error()) - db.reset_error_history() - self.assertEqual(None, db.error()) - self.assertEqual(None, db.previous_error()) + db.command("forceerror", check=False) + self.assertTrue(db.error()) + self.assertTrue(db.previous_error()) - db.command("forceerror", check=False) - self.assertTrue(db.error()) - self.assertTrue(db.previous_error()) + db.command("forceerror", check=False) + self.assertTrue(db.error()) + prev_error = db.previous_error() + self.assertEqual(prev_error["nPrev"], 1) + del prev_error["nPrev"] + prev_error.pop("lastOp", None) + error = db.error() + error.pop("lastOp", None) + # getLastError includes "connectionId" in recent + # server versions, getPrevError does not. + error.pop("connectionId", None) + self.assertEqual(error, prev_error) - db.command("forceerror", check=False) - self.assertTrue(db.error()) - prev_error = db.previous_error() - self.assertEqual(prev_error["nPrev"], 1) - del prev_error["nPrev"] - prev_error.pop("lastOp", None) - error = db.error() - error.pop("lastOp", None) - # getLastError includes "connectionId" in recent - # server versions, getPrevError does not. - error.pop("connectionId", None) - self.assertEqual(error, prev_error) + db.test.find_one() + self.assertEqual(None, db.error()) + self.assertTrue(db.previous_error()) + self.assertEqual(db.previous_error()["nPrev"], 2) - db.test.find_one() - self.assertEqual(None, db.error()) - self.assertTrue(db.previous_error()) - self.assertEqual(db.previous_error()["nPrev"], 2) - - db.reset_error_history() - self.assertEqual(None, db.error()) - self.assertEqual(None, db.previous_error()) + db.reset_error_history() + self.assertEqual(None, db.error()) + self.assertEqual(None, db.previous_error()) + finally: + ctx.exit() def test_command(self): db = self.client.admin @@ -331,11 +335,16 @@ class TestDatabase(unittest.TestCase): db.test.remove({}) db.test.save({"i": 1}) - db.test.update({"i": 1}, {"$set": {"i": 2}}, w=0) - self.assertTrue(db.last_status()["updatedExisting"]) + ctx = catch_warnings() + try: + warnings.simplefilter("ignore", DeprecationWarning) + db.test.update({"i": 1}, {"$set": {"i": 2}}, w=0) + self.assertTrue(db.last_status()["updatedExisting"]) - db.test.update({"i": 1}, {"$set": {"i": 500}}, w=0) - self.assertFalse(db.last_status()["updatedExisting"]) + db.test.update({"i": 1}, {"$set": {"i": 500}}, w=0) + self.assertFalse(db.last_status()["updatedExisting"]) + finally: + ctx.exit() def test_password_digest(self): self.assertRaises(TypeError, auth._password_digest, 5) diff --git a/test/test_pooling_base.py b/test/test_pooling_base.py index 7207034d8..d47f01134 100644 --- a/test/test_pooling_base.py +++ b/test/test_pooling_base.py @@ -134,7 +134,8 @@ class NonUnique(MongoThread): for _ in xrange(N): self.client.start_request() self.db.unique.insert({"_id": "jesse"}, w=0) - self.ut.assertNotEqual(None, self.db.error()) + self.ut.assertNotEqual(None, + self.db.command('getlasterror').get('err')) self.client.end_request() @@ -152,7 +153,7 @@ class NoRequest(MongoThread): errors = 0 for _ in xrange(N): self.db.unique.insert({"_id": "jesse"}, w=0) - if not self.db.error(): + if not self.db.command("getlasterror").get("err"): errors += 1 self.client.end_request()