Commits

Jason R. Coombs committed 238c37e

Issue 18532: Added tests and documentation to formally specify the .name attribute on hashlib objects.

  • Participants
  • Parent commits f4f81eb

Comments (0)

Files changed (2)

File Doc/library/hashlib.rst

 
    The internal block size of the hash algorithm in bytes.
 
+A hash object has the following attributes:
+
+.. attribute:: hash.name
+
+   The canonical name of this hash, always lowercase and always suitable as a
+   parameter to :func:`new` to create another hash of this type.
+
+   .. versionchanged:: 3.4
+      The name attribute has been present in CPython since its inception, but
+      until Python 3.4 was not formally specified, so may not exist on some
+      platforms.
+
 A hash object has the following methods:
 
 

File Lib/test/test_hashlib.py

             assert isinstance(h.digest(), bytes), name
             self.assertEqual(hexstr(h.digest()), h.hexdigest())
 
+    def test_name_attribute(self):
+        for cons in self.hash_constructors:
+            h = cons()
+            assert isinstance(h.name, str), "No name attribute"
+            assert h.name in self.supported_hash_names
 
     def test_large_update(self):
         aas = b'a' * 128