bpo-43916: Rewrite new hashlib tests, fix typo (GH-25791)

* bpo-43916: Rewrite new hashlib tests, fix typo
* Flag test as cpython only
This commit is contained in:
Christian Heimes 2021-05-01 22:42:36 +02:00 committed by GitHub
parent 55e5c680dd
commit ddbef71a2c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 12 additions and 30 deletions

View File

@ -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):