diff options
author | Christopher Baines <mail@cbaines.net> | 2015-12-22 14:15:26 +0000 |
---|---|---|
committer | Christopher Baines <mail@cbaines.net> | 2015-12-22 14:15:26 +0000 |
commit | 6b4e166f2475c4be0df7d82dc4d86aa43c6cb066 (patch) | |
tree | eb8f0fa0ed67f14cc5c5645f6bb12494e7966e98 /test/test_util.py | |
parent | b6983c7c258a0ce3365f7c7409f2a06a8ed70bca (diff) | |
parent | 24ae6ba32069ca15f4a163e386964a3accdccf63 (diff) | |
download | python-urllib3-6b4e166f2475c4be0df7d82dc4d86aa43c6cb066.tar python-urllib3-6b4e166f2475c4be0df7d82dc4d86aa43c6cb066.tar.gz |
merge patched into master
Diffstat (limited to 'test/test_util.py')
-rw-r--r-- | test/test_util.py | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/test/test_util.py b/test/test_util.py index fa59ada..ef4caab 100644 --- a/test/test_util.py +++ b/test/test_util.py @@ -1,3 +1,4 @@ +import hashlib import warnings import logging import unittest @@ -18,12 +19,14 @@ from urllib3.util.url import ( from urllib3.util.ssl_ import ( resolve_cert_reqs, ssl_wrap_socket, + _const_compare_digest_backport, ) from urllib3.exceptions import ( LocationParseError, TimeoutStateError, InsecureRequestWarning, SSLError, + SNIMissingWarning, ) from urllib3.util import is_fp_closed, ssl_ @@ -412,3 +415,30 @@ class TestUtil(unittest.TestCase): ssl_wrap_socket(ssl_context=mock_context, sock=socket) mock_context.wrap_socket.assert_called_once_with(socket) ssl_.HAS_SNI = HAS_SNI + + def test_ssl_wrap_socket_with_no_sni_warns(self): + socket = object() + mock_context = Mock() + # Ugly preservation of original value + HAS_SNI = ssl_.HAS_SNI + ssl_.HAS_SNI = False + with patch('warnings.warn') as warn: + ssl_wrap_socket(ssl_context=mock_context, sock=socket) + mock_context.wrap_socket.assert_called_once_with(socket) + ssl_.HAS_SNI = HAS_SNI + self.assertTrue(warn.call_count >= 1) + warnings = [call[0][1] for call in warn.call_args_list] + self.assertTrue(SNIMissingWarning in warnings) + + def test_const_compare_digest_fallback(self): + target = hashlib.sha256(b'abcdef').digest() + self.assertTrue(_const_compare_digest_backport(target, target)) + + prefix = target[:-1] + self.assertFalse(_const_compare_digest_backport(target, prefix)) + + suffix = target + b'0' + self.assertFalse(_const_compare_digest_backport(target, suffix)) + + incorrect = hashlib.sha256(b'xyz').digest() + self.assertFalse(_const_compare_digest_backport(target, incorrect)) |