def testEncodeException(self): self.assertEqualValues(errors.EncodeException(Exception("Foobar")), ("Exception", ("Foobar", ))) err = errors.GenericError(True, 100, "foo", ["x", "y"]) self.assertEqualValues(errors.EncodeException(err), ("GenericError", (True, 100, "foo", ["x", "y"])))
class ClientRequestWorker(workerpool.BaseWorker): # pylint: disable=W0221 def RunTask(self, server, message, client): """Process the request. """ client_ops = ClientOps(server) try: (method, args, ver) = rpccl.ParseRequest(message) except rpcerr.ProtocolError, err: logging.error("Protocol Error: %s", err) client.close_log() return success = False try: # Verify client's version if there was one in the request if ver is not None and ver != constants.LUXI_VERSION: raise errors.LuxiError( "LUXI version mismatch, server %s, request %s" % (constants.LUXI_VERSION, ver)) result = client_ops.handle_request(method, args) success = True except errors.GenericError, err: logging.exception("Unexpected exception") success = False result = errors.EncodeException(err)
def _Cb(msg): (method, args, version) = client.ParseRequest(msg) self.assertEqual(method, "fn9") self.assertEqual(args, []) err = errors.OpPrereqError("TestVer") return client.FormatResponse(False, errors.EncodeException(err), version=self.MY_LUXI_VERSION)
def testMaybeRaise(self): testvals = [None, 1, 2, 3, "Hello World", (1, ), (1, 2, 3), ("NoErrorClassName", []), ("NoErrorClassName", None), ("GenericError", [1, 2, 3], None), ("GenericError", 1)] # These shouldn't raise for i in testvals: errors.MaybeRaise(i) self.assertRaises(errors.GenericError, errors.MaybeRaise, ("GenericError", ["Hello"])) # Check error encoding for i in testvals: src = errors.GenericError(i) try: errors.MaybeRaise(errors.EncodeException(src)) except errors.GenericError, dst: self.assertEqual(src.args, dst.args) self.assertEqual(src.__class__, dst.__class__) else: self.fail("Exception %s not raised" % repr(src))