Fix dumbdbm and test_dumbdbm to work with dict views. Bug in dumbdbm was from
dict views not being iterators but just iterables.
diff --git a/Lib/dumbdbm.py b/Lib/dumbdbm.py
index 1c9b572..7724ac6 100644
--- a/Lib/dumbdbm.py
+++ b/Lib/dumbdbm.py
@@ -202,7 +202,7 @@
return key in self._index
def iterkeys(self):
- return self._index.keys()
+ return iter(self._index.keys())
__iter__ = iterkeys
def __len__(self):
diff --git a/Lib/test/test_dumbdbm.py b/Lib/test/test_dumbdbm.py
index 041fac1..ba94d98 100644
--- a/Lib/test/test_dumbdbm.py
+++ b/Lib/test/test_dumbdbm.py
@@ -32,7 +32,7 @@
def test_dumbdbm_creation(self):
f = dumbdbm.open(_fname, 'c')
- self.assertEqual(f.keys(), [])
+ self.assertEqual(list(f.keys()), [])
for key in self._dict:
f[key] = self._dict[key]
self.read_helper(f)
@@ -128,10 +128,8 @@
f.close()
def keys_helper(self, f):
- keys = f.keys()
- keys.sort()
- dkeys = self._dict.keys()
- dkeys.sort()
+ keys = sorted(f.keys())
+ dkeys = sorted(self._dict.keys())
self.assertEqual(keys, dkeys)
return keys
@@ -156,10 +154,8 @@
f.close()
f = dumbdbm.open(_fname)
- expected = d.items()
- expected.sort()
- got = f.items()
- got.sort()
+ expected = sorted(d.items())
+ got = sorted(f.items())
self.assertEqual(expected, got)
f.close()