mirror of
https://github.com/kevin1024/vcrpy.git
synced 2025-12-08 16:53:23 +00:00
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.
49 lines
1.9 KiB
Python
49 lines
1.9 KiB
Python
import pytest
|
|
boto = pytest.importorskip("boto")
|
|
from boto.s3.connection import S3Connection
|
|
from boto.s3.key import Key
|
|
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():
|
|
s3_conn = S3Connection()
|
|
s3_bucket = s3_conn.get_bucket('boto-demo-1394171994') # a bucket you can access
|
|
k = Key(s3_bucket)
|
|
k.key = 'test.txt'
|
|
k.set_contents_from_string('hello world i am a string')
|
|
|
|
def test_boto_medium_difficulty(tmpdir):
|
|
s3_conn = S3Connection()
|
|
s3_bucket = s3_conn.get_bucket('boto-demo-1394171994') # a bucket you can access
|
|
with vcr.use_cassette(str(tmpdir.join('boto-medium.yml'))) as cass:
|
|
k = Key(s3_bucket)
|
|
k.key = 'test.txt'
|
|
k.set_contents_from_string('hello world i am a string')
|
|
|
|
with vcr.use_cassette(str(tmpdir.join('boto-medium.yml'))) as cass:
|
|
k = Key(s3_bucket)
|
|
k.key = 'test.txt'
|
|
k.set_contents_from_string('hello world i am a string')
|
|
|
|
|
|
def test_boto_hardcore_mode(tmpdir):
|
|
with vcr.use_cassette(str(tmpdir.join('boto-hardcore.yml'))) as cass:
|
|
s3_conn = S3Connection()
|
|
s3_bucket = s3_conn.get_bucket('boto-demo-1394171994') # a bucket you can access
|
|
k = Key(s3_bucket)
|
|
k.key = 'test.txt'
|
|
k.set_contents_from_string('hello world i am a string')
|
|
|
|
with vcr.use_cassette(str(tmpdir.join('boto-hardcore.yml'))) as cass:
|
|
s3_conn = S3Connection()
|
|
s3_bucket = s3_conn.get_bucket('boto-demo-1394171994') # a bucket you can access
|
|
k = Key(s3_bucket)
|
|
k.key = 'test.txt'
|
|
k.set_contents_from_string('hello world i am a string')
|