mirror of
https://github.com/kevin1024/vcrpy.git
synced 2025-12-11 10:03:00 +00:00
Attributes set on VCRConnection now also get set on the real_connection
This commit is contained in:
7
tests/unit/test_stubs.py
Normal file
7
tests/unit/test_stubs.py
Normal 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'
|
||||||
@@ -315,6 +315,22 @@ class VCRConnection(object):
|
|||||||
with force_reset():
|
with force_reset():
|
||||||
self.real_connection = self._baseclass(*args, **kwargs)
|
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):
|
class VCRHTTPConnection(VCRConnection):
|
||||||
'''A Mocked class for HTTP requests'''
|
'''A Mocked class for HTTP requests'''
|
||||||
|
|||||||
Reference in New Issue
Block a user