def test_response(self):
		"""Check response creation"""

		req = message.jsonrpc_request("foobar", None)
		res = message.jsonrpc_response(req, {'status':'ok'})

		self.assertTrue(message.jsonrpc_is_response(res))
		self.assertEqual(req['id'], res['id'])
	def test_request(self):
		"""Check request creation"""

		a0 = {'jsonrpc': '2.0', 'method': 'foobar', 'id': '123'}
		r0 = message.jsonrpc_request("foobar", None)

		a1 = {'jsonrpc': '2.0', 'method': 'foobar', 'params': [1,2,3], 'id': '123'}
		r1 = message.jsonrpc_request("foobar", [1,2,3])

		a2 = {'jsonrpc': '2.0', 'method': 'foobar', 'params': 'ZZZ', 'id': '123'}
		r2 = message.jsonrpc_request("foobar", "ZZZ")

		self.assertTrue(message.jsonrpc_is_request(r0))
		self.assertTrue(message.jsonrpc_is_request(r1))
		self.assertTrue(message.jsonrpc_is_request(r2))

		self.assertEqual(set(a0.keys()), set(r0.keys()))
		self.assertEqual(set(a1.keys()), set(r1.keys()))
		self.assertEqual(set(a2.keys()), set(r2.keys()))
	def test_response_error(self):
		"""Check error response"""

		req = message.jsonrpc_request("foobar", None)

		res = message.jsonrpc_response_error(req, 'InvalidRequest', {'status':'fail'})
		self.assertTrue(message.jsonrpc_is_response(res))
		self.assertEqual(req['id'], res['id'])
		self.assertEqual(res['error']['code'], -32600)

		res = message.jsonrpc_response_error(req, 'FooBar', {'status':'fail'})
		self.assertTrue(message.jsonrpc_is_response(res))
		self.assertEqual(req['id'], res['id'])
		self.assertEqual(res['error']['code'], -32603)

		res = message.jsonrpc_response_error(req, None, {'status':'fail'})
		self.assertTrue(message.jsonrpc_is_response(res))
		self.assertEqual(req['id'], res['id'])
		self.assertEqual(res['error']['code'], -32603)