56 lines
1.4 KiB
Python
56 lines
1.4 KiB
Python
__author__ = 'RemiZOffAlex'
|
|
__email__ = 'remizoffalex@mail.ru'
|
|
|
|
import unittest
|
|
from uuid import uuid4
|
|
|
|
from jsonrpc import JSONRPC
|
|
|
|
|
|
jsonrpc = JSONRPC()
|
|
|
|
@jsonrpc.method('boo')
|
|
def index() -> str:
|
|
return 'Welcome to JSON-RPC'
|
|
|
|
class Calc(unittest.TestCase):
|
|
def test_method_exist(self):
|
|
self.assertIn('boo', jsonrpc.methods)
|
|
|
|
def test_example(self):
|
|
self.assertEqual(
|
|
jsonrpc.example('boo'),
|
|
{
|
|
'jsonrpc': '3.0',
|
|
'method': 'boo',
|
|
'id': '00000000-0000-0000-0000-000000000000'
|
|
}
|
|
)
|
|
|
|
def test_evaluate(self):
|
|
id = str(uuid4())
|
|
request = {'jsonrpc': '3.0', 'method': 'boo', 'id': id}
|
|
response = jsonrpc(request)
|
|
self.assertEqual(
|
|
response,
|
|
{'jsonrpc': '3.0', 'result': 'Welcome to JSON-RPC', 'id': id}
|
|
)
|
|
|
|
def test_error(self):
|
|
id = str(uuid4())
|
|
request = {'jsonrpc': '3.0', 'method': 'bla-bla', 'id': id}
|
|
response = jsonrpc(request)
|
|
print('test_error.response', response)
|
|
print(response)
|
|
self.assertEqual(
|
|
response,
|
|
{
|
|
'jsonrpc': '3.0',
|
|
'error': {
|
|
'code': 'internal.error',
|
|
'message': 'Метод не найден: bla-bla'
|
|
},
|
|
'id': id
|
|
}
|
|
)
|