From 2c6ecb490a2d31ea788a00d08cee85374d972560 Mon Sep 17 00:00:00 2001 From: "A. Jesse Jiryu Davis" Date: Wed, 8 Oct 2014 12:27:21 -0400 Subject: [PATCH] PYTHON-766 Python 2.4-compatible test for parsing mongos errors. --- test/test_database.py | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/test/test_database.py b/test/test_database.py index 4391ab981..7df63fb01 100644 --- a/test/test_database.py +++ b/test/test_database.py @@ -658,10 +658,12 @@ class TestDatabase(unittest.TestCase): 'errmsg': 'outer', 'raw': {'shard0/host0,host1': {'ok': 0, 'errmsg': 'inner'}}} - with self.assertRaises(OperationFailure) as context: + try: helpers._check_command_response(error_document, reset=None) - - self.assertEqual('inner', str(context.exception)) + except OperationFailure, exc: + self.assertEqual('inner', str(exc)) + else: + self.fail('OperationFailure not raised') # If a shard has no primary and you run a command like dbstats, which # cannot be run on a secondary, mongos's response includes empty "raw" @@ -671,10 +673,12 @@ class TestDatabase(unittest.TestCase): 'errmsg': 'outer', 'raw': {'shard0/host0,host1': {}}} - with self.assertRaises(OperationFailure) as context: + try: helpers._check_command_response(error_document, reset=None) - - self.assertEqual('outer', str(context.exception)) + except OperationFailure, exc: + self.assertEqual('outer', str(exc)) + else: + self.fail('OperationFailure not raised') # Raw error has ok: 0 but no errmsg. Not a known case, but test it. error_document = { @@ -682,10 +686,12 @@ class TestDatabase(unittest.TestCase): 'errmsg': 'outer', 'raw': {'shard0/host0,host1': {'ok': 0}}} - with self.assertRaises(OperationFailure) as context: + try: helpers._check_command_response(error_document, reset=None) - - self.assertEqual('outer', str(context.exception)) + except OperationFailure, exc: + self.assertEqual('outer', str(exc)) + else: + self.fail('OperationFailure not raised') def test_command_read_pref_warning(self): ctx = catch_warnings()