Author: Armin Rigo <ar...@tunes.org> 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 pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit