class TestJsonrpcRequestHandler(unittest.TestCase): def setUp(self): self.request = Mock() self.app = Application() self.handler = JsonrpcRequestHandler(self.app, self.request) self.handler.finish = Mock() def test_post(self): self.handler.jsonrpc_foo = lambda: "value" self.handler.request.body = '{"id":1, "method":"foo"}' self.handler.post() # json encoders can differ in their results (e.g., when using # pypy), so use mock to test whether they were being called # correctly (see http://stackoverflow.com/a/28418085) call = self.handler.finish.call_args call_args, call_kwargs = call encoded_object = call_args[0] self.assertTrue(dict(result="value", error=None, id=1) == cyclone.escape.json_decode(encoded_object)) def test_default_jsonrpc_headers(self): self.handler.jsonrpc_foo = lambda: "value" self.handler.request.body = '{"id":1, "method":"foo"}' self.handler.post() self.assertTrue("Content-Type" in self.handler._headers) self.assertTrue("application/json; charset=UTF-8" == self.handler._headers.get("Content-Type"))
def setUp(self): self.request = Mock() self.app = Application() self.handler = JsonrpcRequestHandler(self.app, self.request) self.handler.finish = Mock()