From: Neal Norwitz Date: Sun, 27 Jan 2008 20:03:13 +0000 (+0000) Subject: socket.error doesn't have a headers attribute like ProtocolError. X-Git-Tag: v2.6a1~359 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=cf25eb14afb73341aba218c66374d0895c8e94ff;p=python socket.error doesn't have a headers attribute like ProtocolError. Handle that situation where we catch socket.errors. --- diff --git a/Lib/test/test_xmlrpc.py b/Lib/test/test_xmlrpc.py index 70a6b39f68..4ed48cfa55 100644 --- a/Lib/test/test_xmlrpc.py +++ b/Lib/test/test_xmlrpc.py @@ -397,7 +397,7 @@ class SimpleServerTestCase(unittest.TestCase): # ignore failures due to non-blocking socket 'unavailable' errors if not is_unavailable_exception(e): # protocol error; provide additional information in test output - self.fail("%s\n%s" % (e, e.headers)) + self.fail("%s\n%s" % (e, getattr(e, "headers", ""))) # [ch] The test 404 is causing lots of false alarms. def XXXtest_404(self): @@ -423,7 +423,7 @@ class SimpleServerTestCase(unittest.TestCase): # ignore failures due to non-blocking socket 'unavailable' errors if not is_unavailable_exception(e): # protocol error; provide additional information in test output - self.fail("%s\n%s" % (e, e.headers)) + self.fail("%s\n%s" % (e, getattr(e, "headers", ""))) def test_introspection2(self): try: @@ -435,7 +435,7 @@ class SimpleServerTestCase(unittest.TestCase): # ignore failures due to non-blocking socket 'unavailable' errors if not is_unavailable_exception(e): # protocol error; provide additional information in test output - self.fail("%s\n%s" % (e, e.headers)) + self.fail("%s\n%s" % (e, getattr(e, "headers", ""))) def test_introspection3(self): try: @@ -447,7 +447,7 @@ class SimpleServerTestCase(unittest.TestCase): # ignore failures due to non-blocking socket 'unavailable' errors if not is_unavailable_exception(e): # protocol error; provide additional information in test output - self.fail("%s\n%s" % (e, e.headers)) + self.fail("%s\n%s" % (e, getattr(e, "headers", ""))) def test_introspection4(self): # the SimpleXMLRPCServer doesn't support signatures, but @@ -460,7 +460,7 @@ class SimpleServerTestCase(unittest.TestCase): # ignore failures due to non-blocking socket 'unavailable' errors if not is_unavailable_exception(e): # protocol error; provide additional information in test output - self.fail("%s\n%s" % (e, e.headers)) + self.fail("%s\n%s" % (e, getattr(e, "headers", ""))) def test_multicall(self): try: @@ -477,7 +477,7 @@ class SimpleServerTestCase(unittest.TestCase): # ignore failures due to non-blocking socket 'unavailable' errors if not is_unavailable_exception(e): # protocol error; provide additional information in test output - self.fail("%s\n%s" % (e, e.headers)) + self.fail("%s\n%s" % (e, getattr(e, "headers", ""))) def test_non_existing_multicall(self): try: @@ -498,7 +498,7 @@ class SimpleServerTestCase(unittest.TestCase): # ignore failures due to non-blocking socket 'unavailable' errors if not is_unavailable_exception(e): # protocol error; provide additional information in test output - self.fail("%s\n%s" % (e, e.headers)) + self.fail("%s\n%s" % (e, getattr(e, "headers", ""))) def test_dotted_attribute(self): # this will raise AttirebuteError because code don't want us to use @@ -553,7 +553,7 @@ class FailingServerTestCase(unittest.TestCase): # ignore failures due to non-blocking socket 'unavailable' errors if not is_unavailable_exception(e): # protocol error; provide additional information in test output - self.fail("%s\n%s" % (e, e.headers)) + self.fail("%s\n%s" % (e, getattr(e, "headers", ""))) def test_fail_no_info(self): # use the broken message class @@ -564,7 +564,7 @@ class FailingServerTestCase(unittest.TestCase): p.pow(6,8) except (xmlrpclib.ProtocolError, socket.error), e: # ignore failures due to non-blocking socket 'unavailable' errors - if not is_unavailable_exception(e): + if not is_unavailable_exception(e) and hasattr(e, "headers"): # The two server-side error headers shouldn't be sent back in this case self.assertTrue(e.headers.get("X-exception") is None) self.assertTrue(e.headers.get("X-traceback") is None) @@ -584,7 +584,7 @@ class FailingServerTestCase(unittest.TestCase): p.pow(6,8) except (xmlrpclib.ProtocolError, socket.error), e: # ignore failures due to non-blocking socket 'unavailable' errors - if not is_unavailable_exception(e): + if not is_unavailable_exception(e) and hasattr(e, "headers"): # We should get error info in the response expected_err = "invalid literal for int() with base 10: 'I am broken'" self.assertEqual(e.headers.get("x-exception"), expected_err)