コード例 #1
0
ファイル: core.py プロジェクト: rvoicilas/vaporize
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)
コード例 #2
0
ファイル: mock.py プロジェクト: abg/vaporize
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)