combined_cert = None
def connect(self):
- sock = socket.create_connection((self.host, self.port),
- self.timeout, self.source_address)
+ try:
+ sock = socket.create_connection((self.host, self.port),
+ self.timeout, self.source_address)
+ except AttributeError:
+ # python 2.6 doesn't have the source_address attribute
+ sock = socket.create_connection((self.host, self.port),
+ self.timeout)
if self._tunnel_host:
self.sock = sock
self._tunnel()
self.assertEqual(con._tunnel_host, 'myproxy.local')
self.assertEqual(con._tunnel_port, 3128)
self.assertEqual(con.sock, self.wrap_mock())
+
+
+class TestSockets(test_rp.BigSwitchProxyPluginV2TestCase):
+
+ def setUp(self):
+ super(TestSockets, self).setUp()
+ # http patch must not be running or it will mangle the servermanager
+ # import where the https connection classes are defined
+ self.httpPatch.stop()
+ self.sm = importutils.import_module(SERVERMANAGER)
+
+ def test_socket_create_attempt(self):
+ # exercise the socket creation to make sure it works on both python
+ # versions
+ con = self.sm.HTTPSConnectionWithValidation('127.0.0.1', 0, timeout=1)
+ # if httpcon was created, a connect attempt should raise a socket error
+ self.assertRaises(socket.error, con.connect)