mirror of
https://github.com/kevin1024/vcrpy.git
synced 2025-12-09 01:03:24 +00:00
Add a failing test to illustrate a hole in vcrpy's Boto support
This test will fail with the following error: TypeError: unbound method __init__() must be called with VCRHTTPConnection instance as first argument (got CertValidatingHTTPSConnection instance instead) The TypeError is raised because the __init__ method of Boto's CertValidatingHTTPSConnection (which extends httplib.HTTPConnection) calls httplib.HTTPConnection.__init__, and during the test httplib.HTTPConnection actually refers to the patched verison (i.e., VCRHTTPConnection). When VCRHTTPConnection.__init__ is called, it expects to receive a VCRHTTPConnection object as its first argument, but instead it receives a CertValidatingHTTPSConnection object. Because the only ancestor class of CertValidatingHTTPSConnection is the original, un-patched httplib.HTTPConnection, the first argument is not considered to be a VCRHTTPConnection object, so a TypeError is raised.
This commit is contained in:
@@ -4,6 +4,13 @@ from boto.s3.connection import S3Connection
|
|||||||
from boto.s3.key import Key
|
from boto.s3.key import Key
|
||||||
import vcr
|
import vcr
|
||||||
|
|
||||||
|
def test_boto_stubs(tmpdir):
|
||||||
|
with vcr.use_cassette(str(tmpdir.join('boto-stubs.yml'))):
|
||||||
|
# Perform the imports within the patched context so that
|
||||||
|
# CertValidatingHTTPSConnection refers to the patched version.
|
||||||
|
from boto.https_connection import CertValidatingHTTPSConnection
|
||||||
|
CertValidatingHTTPSConnection('hostname.does.not.matter')
|
||||||
|
|
||||||
def test_boto_without_vcr():
|
def test_boto_without_vcr():
|
||||||
s3_conn = S3Connection()
|
s3_conn = S3Connection()
|
||||||
s3_bucket = s3_conn.get_bucket('boto-demo-1394171994') # a bucket you can access
|
s3_bucket = s3_conn.get_bucket('boto-demo-1394171994') # a bucket you can access
|
||||||
|
|||||||
Reference in New Issue
Block a user