[Python-checkins] cpython: Issue 18532: Added tests and documentation to formally specify the .name

jason.coombs python-checkins at python.org
Mon Aug 5 08:54:55 CEST 2013


http://hg.python.org/cpython/rev/238c37e4c395
changeset:   85038:238c37e4c395
parent:      85036:f4f81ebc3de9
user:        Jason R. Coombs <jaraco at jaraco.com>
date:        Sat Aug 03 11:39:39 2013 +0200
summary:
  Issue 18532: Added tests and documentation to formally specify the .name attribute on hashlib objects.

files:
  Doc/library/hashlib.rst  |  12 ++++++++++++
  Lib/test/test_hashlib.py |   5 +++++
  2 files changed, 17 insertions(+), 0 deletions(-)


diff --git a/Doc/library/hashlib.rst b/Doc/library/hashlib.rst
--- a/Doc/library/hashlib.rst
+++ b/Doc/library/hashlib.rst
@@ -124,6 +124,18 @@
 
    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:
 
 
diff --git a/Lib/test/test_hashlib.py b/Lib/test/test_hashlib.py
--- a/Lib/test/test_hashlib.py
+++ b/Lib/test/test_hashlib.py
@@ -154,6 +154,11 @@
             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

-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list