Browse code
Adding tests
Ed L authored on 01/06/2011 17:00:17
Showing 3 changed files
Showing 3 changed files
... | ... |
@@ -37,7 +37,7 @@ from .server import ServerEvents, JSON_RPC |
37 | 37 |
|
38 | 38 |
class JSONRPCTest(ServerEvents): |
39 | 39 |
def log(self, *a): print a |
40 |
- def findmethod(self, request, method, kwargs, args, **kw): |
|
40 |
+ def findmethod(self, method): |
|
41 | 41 |
if method in set(['add', 'subtract']): |
42 | 42 |
return getattr(self, method) |
43 | 43 |
else: |
... | ... |
@@ -130,7 +130,9 @@ class JSON_RPC(Resource): |
130 | 130 |
try: |
131 | 131 |
content = jsonrpc.jsonutil.decode(request.content.read()) |
132 | 132 |
except ValueError: raise ParseError |
133 |
+ |
|
133 | 134 |
content = self.eventhandler.processcontent(content, request) |
135 |
+ |
|
134 | 136 |
d = threads.deferToThread(self._action, request, content) |
135 | 137 |
d.addCallback(self._cbRender, request) |
136 | 138 |
d.addErrback(self._ebRender, request, content.get('id') if hasattr(content, 'get') else None) |
... | ... |
@@ -75,6 +75,32 @@ class TestJSONRPCServer(unittest.TestCase): |
75 | 75 |
self.id_ = 'an_id' |
76 | 76 |
self.param = "some data" |
77 | 77 |
|
78 |
+ def test_eventhandler(self): |
|
79 |
+ resource = jsonrpc.server.JSON_RPC() |
|
80 |
+ resource.eventhandler = mock.Mock(jsonrpc.server.ServerEvents) |
|
81 |
+ resource.eventhandler.findmethod.return_value = lambda *a, **b: 'test data' |
|
82 |
+ |
|
83 |
+ rv = {"jsonrpc": "2.0", "params": [self.param], "method": "echo", "id": self.id_} |
|
84 |
+ resource.eventhandler.processcontent.return_value = rv |
|
85 |
+ resource.eventhandler.processrequest.return_value = rv |
|
86 |
+ |
|
87 |
+ request = DummyRequest(['']) |
|
88 |
+ request.getCookie = mock.Mock() |
|
89 |
+ request.content = StringIO.StringIO(jsonrpc.jsonutil.encode(rv)) |
|
90 |
+ |
|
91 |
+ d = _render(resource, request) |
|
92 |
+ |
|
93 |
+ @d.addCallback |
|
94 |
+ def rendered(ignored): |
|
95 |
+ assert True |
|
96 |
+ assert resource.eventhandler.processcontent.called |
|
97 |
+ assert resource.eventhandler.callmethod.called |
|
98 |
+ assert resource.eventhandler.processrequest.called |
|
99 |
+ assert resource.eventhandler.log.called |
|
100 |
+ |
|
101 |
+ return d |
|
102 |
+ |
|
103 |
+ |
|
78 | 104 |
def test_invalid_data(self): |
79 | 105 |
resource = jsonrpc.server.JSON_RPC() |
80 | 106 |
resource.customize(SimpleEventHandler) |