forked from yezz123/Parser
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtest_parse.py
107 lines (83 loc) · 2.78 KB
/
test_parse.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
# standard imports
import unittest
import io
# local imports
from src.parse import *
from src.error import (
JSONParseError,
)
class TestParse(unittest.TestCase):
def setUp(self):
self.valid_o = {
'json': '2.0',
'id': 42,
'method': 'foo_bazBaz',
'params': [13, {
'xyzzy': 666,
'inky': ['pinky', 'blinky', 'clyde'],
},
],
}
def test_from_dict(self):
r = json_from_dict(self.valid_o)
self.assertEqual(r['id'], self.valid_o['id'])
self.assertEqual(r['params'], self.valid_o['params'])
self.assertEqual(r['method'], self.valid_o['method'])
s = json.dumps(self.valid_o)
r = json_from_str(s)
self.assertEqual(r['id'], self.valid_o['id'])
self.assertEqual(r['params'], self.valid_o['params'])
self.assertEqual(r['method'], self.valid_o['method'])
r = json_from_file(io.BytesIO(s.encode('utf-8')))
self.assertEqual(r['id'], self.valid_o['id'])
self.assertEqual(r['params'], self.valid_o['params'])
self.assertEqual(r['method'], self.valid_o['method'])
def test_missing_version(self):
o = self.valid_o
del o['jsonrpc']
with self.assertRaises(JSONParseError):
json_from_dict(o)
def test_id(self):
o = self.valid_o
del o['id']
with self.assertRaises(JSONParseError):
json_from_dict(o)
o['id'] = None
with self.assertRaises(JSONParseError):
json_from_dict(o)
o['id'] = {}
with self.assertRaises(JSONInvalidRequestError):
json_from_dict(o)
o['id'] = JSON_PRC()
with self.assertRaises(JSONInvalidRequestError):
json_from_dict(o)
def test_method(self):
o = self.valid_o
del o['method']
with self.assertRaises(JSONParseError):
json_from_dict(o)
o['method'] = None
with self.assertRaises(JSONParseError):
json_from_dict(o)
o['method'] = 42
with self.assertRaises(JSONInvalidRequestError):
json_from_dict(o)
o['method'] = {}
with self.assertRaises(JSONInvalidRequestError):
json_from_dict(o)
o['method'] = JSON_PRC()
with self.assertRaises(JSONInvalidRequestError):
json_from_dict(o)
def test_params(self):
o = self.valid_o
del o['params']
with self.assertRaises(JSONParseError):
json_from_dict(o)
o['params'] = None
with self.assertRaises(JSONParseError):
json_from_dict(o)
o['params'] = {}
with self.assertRaises(JSONParseError):
json_from_dict(o)
if __name__ == '__main__':
unittest.main()