1
0
mirror of https://github.com/kevin1024/vcrpy.git synced 2025-12-08 16:53:23 +00:00

Attributes set on VCRConnection now also get set on the real_connection

This commit is contained in:
Tye Wang
2015-09-03 14:35:28 -04:00
parent 34252bc234
commit 79ff59feae
2 changed files with 23 additions and 0 deletions

7
tests/unit/test_stubs.py Normal file
View File

@@ -0,0 +1,7 @@
from vcr.stubs import VCRHTTPSConnection
class TestVCRConnection(object):
def test_setting_of_attributes_get_propogated_to_real_connection(self):
vcr_connection = VCRHTTPSConnection('www.examplehost.com')
vcr_connection.ssl_version = 'example_ssl_version'
assert vcr_connection.real_connection.ssl_version == 'example_ssl_version'

View File

@@ -315,6 +315,22 @@ class VCRConnection(object):
with force_reset():
self.real_connection = self._baseclass(*args, **kwargs)
def __setattr__(self, name, value):
"""
We need to define this because any attributes that are set on the
VCRConnection need to be propogated to the real connection.
For example, urllib3 will set certain attributes on the connection,
such as 'ssl_version'. These attributes need to get set on the real
connection to have the correct and expected behavior.
"""
try:
setattr(self.real_connection, name, value)
except AttributeError: # raised if real_connection has not been set yet
pass
super(VCRConnection, self).__setattr__(name, value)
class VCRHTTPConnection(VCRConnection):
'''A Mocked class for HTTP requests'''