|
|
|
@ -901,36 +901,18 @@ class HashLibTestCase(unittest.TestCase): |
|
|
|
if fips_mode is not None: |
|
|
|
self.assertIsInstance(fips_mode, int) |
|
|
|
|
|
|
|
def test_disallow_instanciation(self): |
|
|
|
constructors = [] |
|
|
|
try: |
|
|
|
import _md5 |
|
|
|
constructors.append(_md5.md5) |
|
|
|
except ImportError: |
|
|
|
pass |
|
|
|
try: |
|
|
|
import _sha1 |
|
|
|
constructors.append(_sha1.sha1) |
|
|
|
except ImportError: |
|
|
|
pass |
|
|
|
try: |
|
|
|
import _sha256 |
|
|
|
constructors.append(_sha256.sha224) |
|
|
|
constructors.append(_sha256.sha256) |
|
|
|
except ImportError: |
|
|
|
pass |
|
|
|
try: |
|
|
|
import _sha512 |
|
|
|
constructors.append(_sha512.sha384) |
|
|
|
constructors.append(_sha512.sha512) |
|
|
|
except ImportError: |
|
|
|
pass |
|
|
|
|
|
|
|
for constructor in constructors: |
|
|
|
h = constructor() |
|
|
|
with self.subTest(constructor=constructor): |
|
|
|
hash_type = type(h) |
|
|
|
self.assertRaises(TypeError, hash_type) |
|
|
|
@support.cpython_only |
|
|
|
def test_disallow_instantiation(self): |
|
|
|
for algorithm, constructors in self.constructors_to_test.items(): |
|
|
|
if algorithm.startswith(("sha3_", "shake", "blake")): |
|
|
|
# _sha3 and _blake types can be instantiated |
|
|
|
continue |
|
|
|
# all other types have DISALLOW_INSTANTIATION |
|
|
|
for constructor in constructors: |
|
|
|
h = constructor() |
|
|
|
with self.subTest(constructor=constructor): |
|
|
|
hash_type = type(h) |
|
|
|
self.assertRaises(TypeError, hash_type) |
|
|
|
|
|
|
|
@unittest.skipUnless(HASH is not None, 'need _hashlib') |
|
|
|
def test_hash_disallow_instanciation(self): |
|
|
|
|