use boto's HTTPResponse class for versions of boto >=2.5.2

Fixes bug: 1027984

Change-Id: I2101ddaa78ede90f39b55d28aab73e7f5a816af5
This commit is contained in:
Ionuț Arțăriși 2012-07-23 16:50:51 +02:00
parent 3351ac4ee2
commit 253c15f0b2

View File

@ -18,13 +18,17 @@
"""Unit tests for the API endpoint""" """Unit tests for the API endpoint"""
import httplib
import random import random
import StringIO import StringIO
import boto import boto
from boto.ec2 import regioninfo from boto.ec2 import regioninfo
from boto import exception as boto_exc from boto import exception as boto_exc
# newer versions of boto use their own wrapper on top of httplib.HTTPResponse
try:
from boto.connection import HTTPResponse
except ImportError:
from httplib import HTTPResponse
import webob import webob
from nova.api import auth from nova.api import auth
@ -58,7 +62,7 @@ class FakeHttplibConnection(object):
requests made via this connection actually get translated and routed into requests made via this connection actually get translated and routed into
our WSGI app, we then wait for the response and turn it back into our WSGI app, we then wait for the response and turn it back into
the httplib.HTTPResponse that boto expects. the HTTPResponse that boto expects.
""" """
def __init__(self, app, host, is_secure=False): def __init__(self, app, host, is_secure=False):
self.app = app self.app = app
@ -77,7 +81,7 @@ class FakeHttplibConnection(object):
# guess that's a function the web server usually provides. # guess that's a function the web server usually provides.
resp = "HTTP/1.0 %s" % resp resp = "HTTP/1.0 %s" % resp
self.sock = FakeHttplibSocket(resp) self.sock = FakeHttplibSocket(resp)
self.http_response = httplib.HTTPResponse(self.sock) self.http_response = HTTPResponse(self.sock)
# NOTE(vish): boto is accessing private variables for some reason # NOTE(vish): boto is accessing private variables for some reason
self._HTTPConnection__response = self.http_response self._HTTPConnection__response = self.http_response
self.http_response.begin() self.http_response.begin()