From: Guido van Rossum Date: Tue, 28 Aug 2007 00:09:54 +0000 (+0000) Subject: Make dumbdbm use bytes for keys consistently. X-Git-Tag: v3.0a1~185 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=7b4beea02e6bf1db96c95781e3bb7e5233afc917;p=thirdparty%2FPython%2Fcpython.git Make dumbdbm use bytes for keys consistently. --- diff --git a/Lib/dumbdbm.py b/Lib/dumbdbm.py index ad3ebcbcb9b1..b47b7bd4b293 100644 --- a/Lib/dumbdbm.py +++ b/Lib/dumbdbm.py @@ -200,7 +200,11 @@ class _Database(UserDict.DictMixin): self._commit() def keys(self): - return self._index.keys() + return [key.encode("latin-1") for key in self._index.keys()] + + def items(self): + return [(key.encode("latin-1"), self[key.encode("latin-1")]) + for key in self._index.keys()] def __contains__(self, key): key = key.decode("latin-1") diff --git a/Lib/test/test_dumbdbm.py b/Lib/test/test_dumbdbm.py index f327a5ae52c2..44bb36941c95 100644 --- a/Lib/test/test_dumbdbm.py +++ b/Lib/test/test_dumbdbm.py @@ -102,7 +102,7 @@ class DumbDBMTestCase(unittest.TestCase): f[b'1'] = b'hello2' f.close() f = dumbdbm.open(_fname) - self.assertEqual(f['1'], b'hello2') + self.assertEqual(f[b'1'], b'hello2') f.close() def test_line_endings(self): @@ -157,11 +157,11 @@ class DumbDBMTestCase(unittest.TestCase): v = random.choice((b'a', b'b', b'c')) * random.randrange(10000) d[k] = v f[k.encode("ascii")] = v - self.assertEqual(f[k], v) + self.assertEqual(f[k.encode("ascii")], v) f.close() f = dumbdbm.open(_fname) - expected = sorted(d.items()) + expected = sorted((k.encode("latin-1"), v) for k, v in d.items()) got = sorted(f.items()) self.assertEqual(expected, got) f.close()