@@ -172,12 +172,10 @@ def add_builtin_constructor(name):
172
172
_sha1 = self ._conditional_import_module ('_sha1' )
173
173
if _sha1 :
174
174
add_builtin_constructor ('sha1' )
175
- _sha256 = self ._conditional_import_module ('_sha256 ' )
176
- if _sha256 :
175
+ _sha2 = self ._conditional_import_module ('_sha2 ' )
176
+ if _sha2 :
177
177
add_builtin_constructor ('sha224' )
178
178
add_builtin_constructor ('sha256' )
179
- _sha512 = self ._conditional_import_module ('_sha512' )
180
- if _sha512 :
181
179
add_builtin_constructor ('sha384' )
182
180
add_builtin_constructor ('sha512' )
183
181
if _blake2 :
@@ -371,19 +369,20 @@ def check(self, name, data, hexdigest, shake=False, **kwargs):
371
369
# 2 is for hashlib.name(...) and hashlib.new(name, ...)
372
370
self .assertGreaterEqual (len (constructors ), 2 )
373
371
for hash_object_constructor in constructors :
374
- m = hash_object_constructor (data , ** kwargs )
375
- computed = m .hexdigest () if not shake else m .hexdigest (length )
376
- self .assertEqual (
377
- computed , hexdigest ,
378
- "Hash algorithm %s constructed using %s returned hexdigest"
379
- " %r for %d byte input data that should have hashed to %r."
380
- % (name , hash_object_constructor ,
381
- computed , len (data ), hexdigest ))
382
- computed = m .digest () if not shake else m .digest (length )
383
- digest = bytes .fromhex (hexdigest )
384
- self .assertEqual (computed , digest )
385
- if not shake :
386
- self .assertEqual (len (digest ), m .digest_size )
372
+ with self .subTest (implementation = hash_object_constructor ):
373
+ m = hash_object_constructor (data , ** kwargs )
374
+ computed = m .hexdigest () if not shake else m .hexdigest (length )
375
+ self .assertEqual (
376
+ computed , hexdigest ,
377
+ "Hash algorithm %s constructed using %s returned hexdigest"
378
+ " %r for %d byte input data that should have hashed to %r."
379
+ % (name , hash_object_constructor ,
380
+ computed , len (data ), hexdigest ))
381
+ computed = m .digest () if not shake else m .digest (length )
382
+ digest = bytes .fromhex (hexdigest )
383
+ self .assertEqual (computed , digest )
384
+ if not shake :
385
+ self .assertEqual (len (digest ), m .digest_size )
387
386
388
387
if not shake and kwargs .get ("key" ) is None :
389
388
# skip shake and blake2 extended parameter tests
@@ -404,14 +403,15 @@ def check_file_digest(self, name, data, hexdigest):
404
403
405
404
try :
406
405
for digest in digests :
407
- buf = io .BytesIO (data )
408
- buf .seek (0 )
409
- self .assertEqual (
410
- hashlib .file_digest (buf , digest ).hexdigest (), hexdigest
411
- )
412
- with open (os_helper .TESTFN , "rb" ) as f :
413
- digestobj = hashlib .file_digest (f , digest )
414
- self .assertEqual (digestobj .hexdigest (), hexdigest )
406
+ with self .subTest (msg = "check_file_digest" , implementation = digest ):
407
+ buf = io .BytesIO (data )
408
+ buf .seek (0 )
409
+ self .assertEqual (
410
+ hashlib .file_digest (buf , digest ).hexdigest (), hexdigest
411
+ )
412
+ with open (os_helper .TESTFN , "rb" ) as f :
413
+ digestobj = hashlib .file_digest (f , digest )
414
+ self .assertEqual (digestobj .hexdigest (), hexdigest )
415
415
finally :
416
416
os .unlink (os_helper .TESTFN )
417
417
0 commit comments