def test_api_call_throttle_should_pass(self): api = FakeApi(True) api._is_response_valid = MagicMock(return_value=True) api.requests_per_seconds = 5 for i in range(api.requests_per_seconds): api.call()
def test_api_server_is_unreachable_raises_server_busy_or_offline_exception(self, sleep): sleep.return_value = True # we don't need to really sleep request = FakeApi().create_request('Wrong Value') request.get_inventory() # we expect an exception because the "server" isn't returning a valid response with self.assertRaises(ServerBusyOrOfflineException): request.call()
def test_api_call_throttle_should_pass(self): request = FakeApi().create_request() request.is_response_valid = MagicMock(return_value=True) request.requests_per_seconds = 5 for i in range(request.requests_per_seconds): request.call()
def test_api_call_throttle_should_fail(self): request = FakeApi().create_request() request.is_response_valid = MagicMock(return_value=True) request.requests_per_seconds = 5 with self.assertRaises(TimeoutError): for i in range(request.requests_per_seconds * 2): request.call()
def test_return_value_is_valid(self): request = FakeApi().create_request() # we set the return value below request.get_inventory(test='awesome') request_caller = request.request_callers[0] # only one request self.assertEqual(request_caller.upper(), 'GET_INVENTORY') good_return_value = {'responses': {request_caller.upper(): {}}, 'status_code': 0} request._call.return_value = good_return_value result = request.call() self.assertEqual(result, good_return_value) self.assertEqual(len(request.request_callers), 0, 'request_callers must be empty')
def test_return_value_is_not_valid(self): api = FakeApi() def returnRequest(ret_value): request = api.create_request(ret_value) request.get_inventory(test='awesome') return request wrong_return_values = [ None, False, {}, { 'responses': {} }, { 'status_code': 0 }, { 'responses': { 'GET_INVENTORY_OR_NOT': {} }, 'status_code': 0 } ] for wrong in wrong_return_values: request = returnRequest(wrong) request_callers = request._pop_request_callers( ) # we can pop because we do no call is_valid = request.is_response_valid(wrong, request_callers) self.assertFalse( is_valid, 'return value {} is valid somehow ?'.format(wrong))
def test_multiple_requests(self): api = FakeApi() api.get_inventory(test='awesome') api.fort_details() good_return_value = {'responses': {'GET_INVENTORY': {}, 'FORT_DETAILS': {}}, 'status_code': 0} api.setApiReturnValue(good_return_value) result = api.call() self.assertEqual(result, good_return_value)
def test_multiple_requests(self): request = FakeApi().create_request() request.get_inventory(test='awesome') request.fort_details() good_return_value = {'responses': {'GET_INVENTORY': {}, 'FORT_DETAILS': {}}, 'status_code': 0} request._call.return_value = good_return_value result = request.call() self.assertEqual(result, good_return_value)
def test_return_value_is_valid(self): api = FakeApi() # we set the return value below api.get_inventory(test='awesome') request = api.request_callers[0] # only one request self.assertEqual(request.upper(), 'GET_INVENTORY') good_return_value = {'responses': {request.upper(): {}}, 'status_code': 0} api.setApiReturnValue(good_return_value) result = api.call() self.assertEqual(result, good_return_value) self.assertEqual(len(api.request_callers), 0, 'request_callers must be empty')
def test_mocked_call(self): api = FakeApi(True) api._is_response_valid = MagicMock(return_value=True) api.get_inventory(test='awesome') result = api.call() self.assertTrue(result)
def test_mocked_call(self): request = FakeApi().create_request(True) request.is_response_valid = MagicMock(return_value=True) request.get_inventory(test='awesome') result = request.call() self.assertTrue(result)
def returnApi(ret_value): api = FakeApi(ret_value) api.get_inventory(test='awesome') return api
def test_api_direct_call(self, mock_method): mock_method.return_value = True result = FakeApi().get_inventory() self.assertEqual(result, 'mock return')