mirror of
https://github.com/dragonpilot/dragonpilot.git
synced 2026-02-20 19:33:56 +08:00
Merge pyextra subtree
This commit is contained in:
150
pyextra/jsonrpc/tests/test_jsonrpc_errors.py
Normal file
150
pyextra/jsonrpc/tests/test_jsonrpc_errors.py
Normal file
@@ -0,0 +1,150 @@
|
||||
import json
|
||||
import sys
|
||||
|
||||
from ..exceptions import (
|
||||
JSONRPCError,
|
||||
JSONRPCInternalError,
|
||||
JSONRPCInvalidParams,
|
||||
JSONRPCInvalidRequest,
|
||||
JSONRPCMethodNotFound,
|
||||
JSONRPCParseError,
|
||||
JSONRPCServerError,
|
||||
JSONRPCDispatchException,
|
||||
)
|
||||
|
||||
if sys.version_info < (2, 7):
|
||||
import unittest2 as unittest
|
||||
else:
|
||||
import unittest
|
||||
|
||||
|
||||
class TestJSONRPCError(unittest.TestCase):
|
||||
def setUp(self):
|
||||
self.error_params = {
|
||||
"code": 0,
|
||||
"message": "",
|
||||
}
|
||||
|
||||
def test_correct_init(self):
|
||||
""" Test object is created."""
|
||||
JSONRPCError(**self.error_params)
|
||||
|
||||
def test_validation_incorrect_no_parameters(self):
|
||||
with self.assertRaises(ValueError):
|
||||
JSONRPCError()
|
||||
|
||||
def test_code_validation_int(self):
|
||||
self.error_params.update({"code": 32000})
|
||||
JSONRPCError(**self.error_params)
|
||||
|
||||
def test_code_validation_no_code(self):
|
||||
del self.error_params["code"]
|
||||
with self.assertRaises(ValueError):
|
||||
JSONRPCError(**self.error_params)
|
||||
|
||||
def test_code_validation_str(self):
|
||||
self.error_params.update({"code": "0"})
|
||||
with self.assertRaises(ValueError):
|
||||
JSONRPCError(**self.error_params)
|
||||
|
||||
def test_message_validation_str(self):
|
||||
self.error_params.update({"message": ""})
|
||||
JSONRPCError(**self.error_params)
|
||||
|
||||
def test_message_validation_none(self):
|
||||
del self.error_params["message"]
|
||||
with self.assertRaises(ValueError):
|
||||
JSONRPCError(**self.error_params)
|
||||
|
||||
def test_message_validation_int(self):
|
||||
self.error_params.update({"message": 0})
|
||||
with self.assertRaises(ValueError):
|
||||
JSONRPCError(**self.error_params)
|
||||
|
||||
def test_data_validation_none(self):
|
||||
self.error_params.update({"data": None})
|
||||
JSONRPCError(**self.error_params)
|
||||
|
||||
def test_data_validation(self):
|
||||
self.error_params.update({"data": {}})
|
||||
JSONRPCError(**self.error_params)
|
||||
|
||||
self.error_params.update({"data": ""})
|
||||
JSONRPCError(**self.error_params)
|
||||
|
||||
def test_json(self):
|
||||
error = JSONRPCError(**self.error_params)
|
||||
self.assertEqual(
|
||||
json.loads(error.json),
|
||||
self.error_params,
|
||||
)
|
||||
|
||||
def test_from_json(self):
|
||||
str_json = json.dumps({
|
||||
"code": 0,
|
||||
"message": "",
|
||||
"data": {},
|
||||
})
|
||||
|
||||
request = JSONRPCError.from_json(str_json)
|
||||
self.assertTrue(isinstance(request, JSONRPCError))
|
||||
self.assertEqual(request.code, 0)
|
||||
self.assertEqual(request.message, "")
|
||||
self.assertEqual(request.data, {})
|
||||
|
||||
|
||||
class TestJSONRPCParseError(unittest.TestCase):
|
||||
def test_code_message(self):
|
||||
error = JSONRPCParseError()
|
||||
self.assertEqual(error.code, -32700)
|
||||
self.assertEqual(error.message, "Parse error")
|
||||
self.assertEqual(error.data, None)
|
||||
|
||||
|
||||
class TestJSONRPCServerError(unittest.TestCase):
|
||||
def test_code_message(self):
|
||||
error = JSONRPCServerError()
|
||||
self.assertEqual(error.code, -32000)
|
||||
self.assertEqual(error.message, "Server error")
|
||||
self.assertEqual(error.data, None)
|
||||
|
||||
|
||||
class TestJSONRPCInternalError(unittest.TestCase):
|
||||
def test_code_message(self):
|
||||
error = JSONRPCInternalError()
|
||||
self.assertEqual(error.code, -32603)
|
||||
self.assertEqual(error.message, "Internal error")
|
||||
self.assertEqual(error.data, None)
|
||||
|
||||
|
||||
class TestJSONRPCInvalidParams(unittest.TestCase):
|
||||
def test_code_message(self):
|
||||
error = JSONRPCInvalidParams()
|
||||
self.assertEqual(error.code, -32602)
|
||||
self.assertEqual(error.message, "Invalid params")
|
||||
self.assertEqual(error.data, None)
|
||||
|
||||
|
||||
class TestJSONRPCInvalidRequest(unittest.TestCase):
|
||||
def test_code_message(self):
|
||||
error = JSONRPCInvalidRequest()
|
||||
self.assertEqual(error.code, -32600)
|
||||
self.assertEqual(error.message, "Invalid Request")
|
||||
self.assertEqual(error.data, None)
|
||||
|
||||
|
||||
class TestJSONRPCMethodNotFound(unittest.TestCase):
|
||||
def test_code_message(self):
|
||||
error = JSONRPCMethodNotFound()
|
||||
self.assertEqual(error.code, -32601)
|
||||
self.assertEqual(error.message, "Method not found")
|
||||
self.assertEqual(error.data, None)
|
||||
|
||||
|
||||
class TestJSONRPCDispatchException(unittest.TestCase):
|
||||
def test_code_message(self):
|
||||
error = JSONRPCDispatchException(message="message",
|
||||
code=400, data={"param": 1})
|
||||
self.assertEqual(error.error.code, 400)
|
||||
self.assertEqual(error.error.message, "message")
|
||||
self.assertEqual(error.error.data, {"param": 1})
|
||||
Reference in New Issue
Block a user