diff options
Diffstat (limited to 'Lib/test/test_hashlib.py')
-rw-r--r-- | Lib/test/test_hashlib.py | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/Lib/test/test_hashlib.py b/Lib/test/test_hashlib.py index f9fe7e3792..b901468db3 100644 --- a/Lib/test/test_hashlib.py +++ b/Lib/test/test_hashlib.py @@ -27,9 +27,10 @@ c_hashlib = import_fresh_module('hashlib', fresh=['_hashlib']) py_hashlib = import_fresh_module('hashlib', blocked=['_hashlib']) try: - from _hashlib import HASH + from _hashlib import HASH, HASHXOF except ImportError: HASH = None + HASHXOF = None try: import _blake2 @@ -254,6 +255,9 @@ class HashLibTestCase(unittest.TestCase): h = cons() if h.name not in self.shakes: continue + if HASH is not None and isinstance(h, HASH): + # _hashopenssl's take a size_t + continue for digest in h.digest, h.hexdigest: self.assertRaises(ValueError, digest, -10) for length in large_sizes: @@ -860,6 +864,18 @@ class HashLibTestCase(unittest.TestCase): def test_get_fips_mode(self): self.assertIsInstance(c_hashlib.get_fips_mode(), int) + @unittest.skipUnless(HASH is not None, 'need _hashlib') + def test_internal_types(self): + # internal types like _hashlib.HASH are not constructable + with self.assertRaisesRegex( + TypeError, "cannot create 'HASH' instance" + ): + HASH() + with self.assertRaisesRegex( + TypeError, "cannot create 'HASHXOF' instance" + ): + HASHXOF() + class KDFTests(unittest.TestCase): |