| @@ -2,6 +2,7 @@ import asyncio | |||||
| import aiosocks | import aiosocks | ||||
| import unittest | import unittest | ||||
| import socket | import socket | ||||
| import ssl as ssllib | |||||
| from unittest import mock | from unittest import mock | ||||
| from asyncio import coroutine as coro | from asyncio import coroutine as coro | ||||
| import aiosocks.constants as c | import aiosocks.constants as c | ||||
| @@ -256,6 +257,21 @@ class TestBaseSocksProtocol(unittest.TestCase): | |||||
| proto._negotiate_done = True | proto._negotiate_done = True | ||||
| proto.eof_received() | proto.eof_received() | ||||
| def test_make_ssl_proto(self): | |||||
| loop_mock = mock.Mock() | |||||
| app_proto = mock.Mock() | |||||
| ssl_context = ssllib.create_default_context() | |||||
| proto = make_base(loop_mock, | |||||
| ap_factory=lambda: app_proto, ssl=ssl_context) | |||||
| proto.socks_request = fake_coroutine((None, None)) | |||||
| proto._transport = mock.Mock() | |||||
| self.loop.run_until_complete(proto.negotiate(None, None)) | |||||
| self.assertTrue(loop_mock._make_ssl_transport.called) | |||||
| self.assertIs(loop_mock._make_ssl_transport.call_args[1]['sslcontext'], | |||||
| ssl_context) | |||||
| @mock.patch('aiosocks.protocols.asyncio.Task') | @mock.patch('aiosocks.protocols.asyncio.Task') | ||||
| def test_func_negotiate_cb_call(self, task_mock): | def test_func_negotiate_cb_call(self, task_mock): | ||||
| loop_mock = mock.Mock() | loop_mock = mock.Mock() | ||||