diff --git a/smartsheet/session.py b/smartsheet/session.py index 48ed878a..4f0aea55 100644 --- a/smartsheet/session.py +++ b/smartsheet/session.py @@ -31,10 +31,8 @@ class _SSLAdapter(HTTPAdapter): def create_ssl_context(self): - ctx = ssl.create_default_context() - ctx.options |= ssl.OP_NO_SSLv2 - ctx.options |= ssl.OP_NO_SSLv3 - ctx.options |= ssl.OP_NO_TLSv1 + ctx = ssl.create_default_context(ssl.Purpose.CLIENT_AUTH) + ctx.minimum_version = ssl.TLSVersion.TLSv1_2 return ctx def init_poolmanager(self, connections, maxsize, block=False): diff --git a/tests/integration/test_ssl.py b/tests/integration/test_ssl.py new file mode 100644 index 00000000..e63b8fb8 --- /dev/null +++ b/tests/integration/test_ssl.py @@ -0,0 +1,16 @@ +import unittest +import warnings +import ssl +from smartsheet.session import _SSLAdapter + +class TestSSLContext(unittest.TestCase): + + def test_no_deprecation_warning(self): + with warnings.catch_warnings(record=True) as w: + warnings.simplefilter("always") + adapter = _SSLAdapter() + context = adapter.create_ssl_context() + self.assertEqual(len(w), 0, "Deprecation warning was raised") + +if __name__ == "__main__": + unittest.main()