1 #!/usr/bin/python 2 3 import unittest 4 import common 5 from autotest_lib.frontend import setup_django_environment 6 import serviceHandler 7 8 9 class RpcMethodHolder(object): 10 @staticmethod 11 def service_1(x, y): 12 return x + y 13 14 @staticmethod 15 def service_2(path): 16 return path.split('/')[-1] 17 18 19 json_request1 = """ 20 { 21 "method": "service_1", 22 "params": [7, 9], 23 "id": null 24 } 25 """ 26 27 expected_response1 = '{"error": null, "result": 16, "id": null}' 28 29 30 json_request2 = """ 31 { 32 "method": "service_2", 33 "params": ["http://www.some.url.com/path/to/package.rpm"], 34 "id": null 35 } 36 """ 37 38 expected_response2 = '{"error": null, "result": "package.rpm", "id": null}' 39 40 json_request3 = """ 41 { 42 "method": "service_3", 43 "params": ["I wonder if this works"], 44 "id": null 45 } 46 """ 47 48 49 class TestServiceHandler(unittest.TestCase): 50 def setUp(self): 51 holder = RpcMethodHolder() 52 self.serviceHandler = serviceHandler.ServiceHandler(holder) 53 54 55 def test_handleRequest1(self): 56 response = self.serviceHandler.handleRequest(json_request1) 57 self.assertEquals(response, expected_response1) 58 59 60 def test_handleRequest2(self): 61 response = self.serviceHandler.handleRequest(json_request2) 62 self.assertEquals(response, expected_response2) 63 64 65 def test_handleRequest3(self): 66 response = self.serviceHandler.handleRequest(json_request3) 67 response_obj = eval(response.replace('null', 'None')) 68 self.assertNotEquals(response_obj['error'], 'None') 69 70 71 if __name__ == "__main__": 72 unittest.main() 73