def it_handles_updating_token_with_charset(self, response, token_response_with_charset): returns = [token_response_with_charset, token_response_with_charset, response] h = RequestHandler("") h._send_request = Mock(side_effect=lambda *args: returns.pop(0)) with patch("ubersmith.api.time") as time: time.sleep = lambda x: None assert self.test_data == h.process_request("uber.method_list").data
def it_raises_updating_token_after_3_tries(self, response, token_response): returns = [token_response, token_response, token_response, response] h = RequestHandler("") h._send_request = Mock(side_effect=lambda *args: returns.pop(0)) with patch("ubersmith.api.time") as time: time.sleep = lambda x: None with pytest.raises(UpdatingTokenResponse): h.process_request("uber.method_list")
def it_handles_updating_token(self, response, token_response): returns = [ token_response, token_response, response, ] h = RequestHandler('') h._send_request = Mock(side_effect=lambda *args: returns.pop(0)) with patch('ubersmith.api.time') as time: time.sleep = lambda x: None assert self.test_data == h.process_request('uber.method_list').data
def it_raises_updating_token_after_3_tries(self, response, token_response): returns = [ token_response, token_response, token_response, response, ] h = RequestHandler('') h._send_request = Mock(side_effect=lambda *args: returns.pop(0)) with patch('ubersmith.api.time') as time: time.sleep = lambda x: None with pytest.raises(UpdatingTokenResponse): h.process_request('uber.method_list')
def it_is_able_to_proxy_calls_to_modules(self): h = RequestHandler('') for call_base, call_name in (m.split('.') for m in METHODS): assert hasattr(h, call_base) proxy = getattr(h, call_base) partial = getattr(proxy, call_name) assert callable(partial) assert partial.request_handler == h
def it_validates_bad_methods(self): h = RequestHandler('') with pytest.raises(RequestError) as e: h.process_request('boop') assert str(e.value) == "Requested method is not valid."
def it_can_disable_ssl_validation(self, response): h = RequestHandler('', verify=False) with patch('ubersmith.api.RequestHandler.session') as session: session.post.return_value = response h.process_request('uber.method_list') assert session.post.call_args[1]['verify'] is False
def it_validates_ssl(self, response): h = RequestHandler('') with patch('ubersmith.api.RequestHandler.session') as session: session.post.return_value = response h.process_request('uber.method_list') assert session.post.call_args[1]['verify'] is True
def it_does_not_proxy_calls_to_methods_that_are_not_callable(self): h = RequestHandler('') ubersmith.uber.rando = 'X-rando' with pytest.raises(AttributeError): h.uber.rando
def it_does_not_proxy_calls_to_methods_that_do_not_exist(self): h = RequestHandler('') with pytest.raises(AttributeError): h.uber.invalid_method
def it_raises_maintenance_response(self, maintenance_response): h = RequestHandler('') h._send_request = Mock(return_value=maintenance_response) with pytest.raises(MaintenanceResponse): h.process_request('uber.method_list')
def it_handles_normal_responses(self, response): h = RequestHandler('') h._send_request = Mock(return_value=response) assert self.test_data == h.process_request('uber.method_list').data
def it_validates_ssl(self, response): h = RequestHandler("") with patch("ubersmith.api.RequestHandler.session") as session: session.post.return_value = response h.process_request("uber.method_list") assert session.post.call_args[1]["verify"] is True
def it_can_disable_ssl_validation(self, response): h = RequestHandler("", verify=False) with patch("ubersmith.api.RequestHandler.session") as session: session.post.return_value = response h.process_request("uber.method_list") assert session.post.call_args[1]["verify"] is False
def it_can_disable_ssl_validation(self, response): h = RequestHandler('', verify=False) with patch('ubersmith.api.requests') as requests: requests.post.return_value = response h.process_request('uber.method_list') assert requests.post.call_args[1]['verify'] is False
def it_validates_ssl(self, response): h = RequestHandler('') with patch('ubersmith.api.requests') as requests: requests.post.return_value = response h.process_request('uber.method_list') assert requests.post.call_args[1]['verify'] is True
def test_get_set_default_handler(): h = RequestHandler('') set_default_request_handler(h) assert get_default_request_handler() == h ubersmith.api._DEFAULT_REQUEST_HANDLER = None
def it_uses_passed_session(self): session = Mock() h = RequestHandler('', session=session) h._send_request('uber.method_list', {}) assert session.post.called
def init(base_url, username=None, password=None, verify=True): """Initialize ubersmith API module with HTTP request handler.""" handler = RequestHandler(base_url, username, password, verify) set_default_request_handler(handler) return handler
def it_uses_passed_session(self): session = Mock() h = RequestHandler("", session=session) h._send_request("uber.method_list", {}) assert session.post.called