Author: Armin Rigo <[email protected]>
Branch:
Changeset: r77170:e0f1bcfbc61b
Date: 2015-05-06 21:26 +0200
http://bitbucket.org/pypy/pypy/changeset/e0f1bcfbc61b/
Log: Test and fix for gdbm
diff --git a/lib_pypy/gdbm.py b/lib_pypy/gdbm.py
--- a/lib_pypy/gdbm.py
+++ b/lib_pypy/gdbm.py
@@ -112,7 +112,7 @@
def __setitem__(self, key, value):
self._check_closed()
- self._size = -1
+ self.size = -1
r = lib.gdbm_store(self.ll_dbm, _fromstr(key), _fromstr(value),
lib.GDBM_REPLACE)
if r < 0:
@@ -120,6 +120,7 @@
def __delitem__(self, key):
self._check_closed()
+ self.size = -1
res = lib.gdbm_delete(self.ll_dbm, _fromstr(key))
if res < 0:
raise KeyError(key)
diff --git a/pypy/module/test_lib_pypy/test_gdbm_extra.py
b/pypy/module/test_lib_pypy/test_gdbm_extra.py
new file mode 100644
--- /dev/null
+++ b/pypy/module/test_lib_pypy/test_gdbm_extra.py
@@ -0,0 +1,17 @@
+from __future__ import absolute_import
+import py
+from rpython.tool.udir import udir
+try:
+ from lib_pypy import gdbm
+except ImportError, e:
+ py.test.skip(e)
+
+def test_len():
+ path = str(udir.join('test_gdbm_extra'))
+ g = gdbm.open(path, 'c')
+ g['abc'] = 'def'
+ assert len(g) == 1
+ g['bcd'] = 'efg'
+ assert len(g) == 2
+ del g['abc']
+ assert len(g) == 1
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit