bpo-44048: Fix two hashlib test cases under FIPS mode (GH-26470) (GH-26531)
test_disallow_instantiation and test_readonly_types try to test all the available
digests, however under FIPS mode, while the algorithms are available, trying to use
them will fail with a ValueError.
(cherry picked from commit a46c220edc5cf716d0b71eb80ac29ecdb4ebb430)
Co-authored-by: stratakis <cstratak@redhat.com>
Co-authored-by: stratakis <cstratak@redhat.com>
diff --git a/Lib/test/test_hashlib.py b/Lib/test/test_hashlib.py
index ad2ed69..76754b6 100644
--- a/Lib/test/test_hashlib.py
+++ b/Lib/test/test_hashlib.py
@@ -909,7 +909,11 @@ def test_disallow_instantiation(self):
continue
# all other types have DISALLOW_INSTANTIATION
for constructor in constructors:
- h = constructor()
+ # In FIPS mode some algorithms are not available raising ValueError
+ try:
+ h = constructor()
+ except ValueError:
+ continue
with self.subTest(constructor=constructor):
hash_type = type(h)
self.assertRaises(TypeError, hash_type)
@@ -930,7 +934,11 @@ def test_readonly_types(self):
for algorithm, constructors in self.constructors_to_test.items():
# all other types have DISALLOW_INSTANTIATION
for constructor in constructors:
- hash_type = type(constructor())
+ # In FIPS mode some algorithms are not available raising ValueError
+ try:
+ hash_type = type(constructor())
+ except ValueError:
+ continue
with self.subTest(hash_type=hash_type):
with self.assertRaisesRegex(TypeError, "immutable type"):
hash_type.value = False