>>> class FakeResp(object):
    ...      content = 'Wohoo!'
    ...      headers = {'foo': 'bar'}
    ...      status_code = 200
    ...      reason = 'OK'

    >>> _abort_http("foo.get", FakeResp())
    Traceback (most recent call last):
    ...
    FastbillResponseError: POST foo.get 200 OK
    Headers:
    {'foo': 'bar'}
    Content:
    'Wohoo!'
    Summary: POST foo.get 200 OK

def _abort_http(method, http_resp):
    """
    >>> class FakeResp(object):
    ...      content = 'Wohoo!'
    ...      headers = {'foo': 'bar'}
    ...      status_code = 200
    ...      reason = 'OK'

    >>> _abort_http("foo.get", FakeResp())
    Traceback (most recent call last):
    ...
    FastbillResponseError: POST foo.get 200 OK
    Headers:
    {'foo': 'bar'}
    Content:
    'Wohoo!'
    Summary: POST foo.get 200 OK

    """
    exc_template = """POST {method} {0.status_code} {0.reason}
Headers:
{headers}
Content:
{0.content!r}
Summary: POST {method} {0.status_code} {0.reason}"""

    headers = _pp.pformat(dict(http_resp.headers))

    message = exc_template.format(
        http_resp,
        method=method,
        headers=headers,
    )
    raise _exc.FastbillResponseError(message, http_resp)