[Python-checkins] cpython: Issue #18582: skip test of _hashlib.pbkdf2_hmac if OpenSSL is not available or

christian.heimes python-checkins at python.org
Sat Oct 19 19:40:58 CEST 2013


http://hg.python.org/cpython/rev/a15fcb847515
changeset:   86479:a15fcb847515
user:        Christian Heimes <christian at cheimes.de>
date:        Sat Oct 19 19:40:49 2013 +0200
summary:
  Issue #18582: skip test of _hashlib.pbkdf2_hmac if OpenSSL is not available or too old

files:
  Lib/test/test_hashlib.py |  19 ++++++++-----------
  1 files changed, 8 insertions(+), 11 deletions(-)


diff --git a/Lib/test/test_hashlib.py b/Lib/test/test_hashlib.py
--- a/Lib/test/test_hashlib.py
+++ b/Lib/test/test_hashlib.py
@@ -548,8 +548,7 @@
         self.assertEqual(expected_hash, hasher.hexdigest())
 
 
-class KDFTests:
-    hashlibmod = None
+class KDFTests(unittest.TestCase):
 
     pbkdf2_test_vectors = [
         (b'password', b'salt', 1, None),
@@ -600,9 +599,7 @@
             (bytes.fromhex('9d9e9c4cd21fe4be24d5b8244c759665'), None),],
     }
 
-    def test_pbkdf2_hmac(self):
-        pbkdf2 = self.hashlibmod.pbkdf2_hmac
-
+    def _test_pbkdf2_hmac(self, pbkdf2):
         for digest_name, results in self.pbkdf2_results.items():
             for i, vector in enumerate(self.pbkdf2_test_vectors):
                 password, salt, rounds, dklen = vector
@@ -631,13 +628,13 @@
         with self.assertRaisesRegex(ValueError, 'unsupported hash type'):
             pbkdf2('unknown', b'pass', b'salt', 1)
 
+    def test_pbkdf2_hmac_py(self):
+        self._test_pbkdf2_hmac(py_hashlib.pbkdf2_hmac)
 
-class PyKDFTests(KDFTests, unittest.TestCase):
-    hashlibmod = py_hashlib
-
-
-class CKDFTests(KDFTests, unittest.TestCase):
-    hashlibmod = c_hashlib
+    @unittest.skipUnless(hasattr(c_hashlib, 'pbkdf2_hmac'),
+                     '   test requires OpenSSL > 1.0')
+    def test_pbkdf2_hmac_c(self):
+        self._test_pbkdf2_hmac(c_hashlib.pbkdf2_hmac)
 
 
 if __name__ == "__main__":

-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list