(self)
| 1396 | self.fail('ProtocolError not raised') |
| 1397 | |
| 1398 | def test_fail_with_info(self): |
| 1399 | # use the broken message class |
| 1400 | xmlrpc.server.SimpleXMLRPCRequestHandler.MessageClass = FailingMessageClass |
| 1401 | |
| 1402 | # Check that errors in the server send back exception/traceback |
| 1403 | # info when flag is set |
| 1404 | xmlrpc.server.SimpleXMLRPCServer._send_traceback_header = True |
| 1405 | |
| 1406 | try: |
| 1407 | p = xmlrpclib.ServerProxy(URL) |
| 1408 | p.pow(6,8) |
| 1409 | except (xmlrpclib.ProtocolError, OSError) as e: |
| 1410 | # ignore failures due to non-blocking socket 'unavailable' errors |
| 1411 | if not is_unavailable_exception(e) and hasattr(e, "headers"): |
| 1412 | # We should get error info in the response |
| 1413 | expected_err = "invalid literal for int() with base 10: 'I am broken'" |
| 1414 | self.assertEqual(e.headers.get("X-exception"), expected_err) |
| 1415 | self.assertTrue(e.headers.get("X-traceback") is not None) |
| 1416 | else: |
| 1417 | self.fail('ProtocolError not raised') |
| 1418 | |
| 1419 | |
| 1420 | @contextlib.contextmanager |
nothing calls this directly
no test coverage detected