def handle_request(verb, url, data=None, wrapper=None, container=None, **kwargs): if not isinstance(_session, requests.sessions.Session): raise ConnectionError('Not connected to the Rackspace Cloud API.') if verb == 'get': request = _session.get url = munge_url(url) elif verb == 'post': request = _session.post elif verb == 'put': request = _session.put elif verb == 'delete': request = _session.delete response = request(url, data=data) if response.status_code not in [200, 201, 202, 203, 204]: handle_exception(response.status_code, response.content) content = response.content.strip() if not content: return True content = json.loads(content) if wrapper is None: wrapper = DotDict if container and isinstance(content[container], list): return [wrapper(i, **kwargs) for i in content[container]] elif container is None: return wrapper(content, **kwargs) else: return wrapper(content[container], **kwargs)
def handle_request_mock(status_code, content, verb, url, data=None, wrapper=None, container=None, **kwargs): response = DotDict(status_code=status_code, content=content) if response.status_code not in [200, 201, 202, 203, 204]: handle_exception(response.status_code, response.content) if not response.content: return True content = json.loads(response.content) if container and isinstance(content[container], list): return [wrapper(i, **kwargs) for i in content[container]] elif container is None: return wrapper(content, **kwargs) else: return wrapper(content[container], **kwargs)