openpilot is an open source driver assistance system. openpilot performs the functions of Automated Lane Centering and Adaptive Cruise Control for over 200 supported car makes and models.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

150 lines
4.5 KiB

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})