import unittest import json from mock import MagicMock, patch from api_clients.utils import ApcUrl, ApiRequest class ResponseInfo: @property def headers(self): return {'content-type': 'application/json'} def json(self): return {'ok', 'ok'} class TestApiRequest(unittest.TestCase): def test_init(self): u = ApiRequest('request_name', ApcUrl('/test/ing')) self.assertEqual(u.name, "request_name") def test_call_json(self): ret = {'ok':'ok'} read = MagicMock() read.headers = {'content-type': 'application/json'} read.json = MagicMock(return_value=ret) u = 'http://localhost/testing' with patch('requests.get') as mock_method: mock_method.return_value = read request = ApiRequest('mm', ApcUrl(u))() self.assertEqual(request, ret) def test_call_html(self): ret = '' read = MagicMock() read.headers = {'content-type': 'application/html'} read.text = MagicMock(return_value=ret) u = 'http://localhost/testing' with patch('requests.get') as mock_method: mock_method.return_value = read request = ApiRequest('mm', ApcUrl(u))() self.assertEqual(request.text(), ret) if __name__ == '__main__': unittest.main()