SF bug #1054139: serious string hashing error in 2.4b1

_PyString_Resize() readied strings for mutation but did not invalidate
the cached hash value.
This commit is contained in:
Raymond Hettinger 2004-10-26 01:52:37 +00:00
parent 3ed238503d
commit 561fbf138d
3 changed files with 11 additions and 1 deletions

View file

@ -80,6 +80,15 @@ class CommonTest(unittest.TestCase):
args = self.fixtype(args)
getattr(object, methodname)(*args)
def test_hash(self):
# SF bug 1054139: += optimization was not invalidating cached hash value
a = self.type2test('DNSSEC')
b = self.type2test('')
for c in a:
b += c
hash(b)
self.assertEqual(hash(a), hash(b))
def test_capitalize(self):
self.checkequal(' hello ', ' hello ', 'capitalize')
self.checkequal('Hello ', 'Hello ','capitalize')