[pypy-svn] r66713 - in pypy/branch/pyjitpl5/pypy/lib: . app_test

arigo at codespeak.net arigo at codespeak.net
Fri Jul 31 11:30:15 CEST 2009


Author: arigo
Date: Fri Jul 31 11:30:15 2009
New Revision: 66713

Modified:
   pypy/branch/pyjitpl5/pypy/lib/app_test/test_dbm_extra.py
   pypy/branch/pyjitpl5/pypy/lib/dbm.py
Log:
No point in trying first with DBM_INSERT and then using DBM_REPLACE.


Modified: pypy/branch/pyjitpl5/pypy/lib/app_test/test_dbm_extra.py
==============================================================================
--- pypy/branch/pyjitpl5/pypy/lib/app_test/test_dbm_extra.py	(original)
+++ pypy/branch/pyjitpl5/pypy/lib/app_test/test_dbm_extra.py	Fri Jul 31 11:30:15 2009
@@ -31,3 +31,12 @@
     d.setdefault('xyz', '123')
     assert dict(d) == {'xyz': '123'}
     d.close()
+
+def test_multiple_sets():
+    path = str(udir.join('test_dbm_extra.test_multiple_sets'))
+    d = dbm.open(path, 'c')
+    d['xyz'] = '12'
+    d['xyz'] = '3'
+    d['xyz'] = '546'
+    assert dict(d) == {'xyz': '546'}
+    assert d['xyz'] == '546'

Modified: pypy/branch/pyjitpl5/pypy/lib/dbm.py
==============================================================================
--- pypy/branch/pyjitpl5/pypy/lib/dbm.py	(original)
+++ pypy/branch/pyjitpl5/pypy/lib/dbm.py	Fri Jul 31 11:30:15 2009
@@ -71,9 +71,7 @@
         data = datum()
         data.dptr = c_char_p(value)
         data.dsize = c_int(len(value))
-        status = getattr(lib, funcs['store'])(self._aobj, dat, data, lib.DBM_INSERT)
-        if status == 1:
-            status = getattr(lib, funcs['store'])(self._aobj, dat, data, lib.DBM_REPLACE)
+        status = getattr(lib, funcs['store'])(self._aobj, dat, data, lib.DBM_REPLACE)
         if getattr(lib, funcs['error'])(self._aobj):
             getattr(lib, funcs['clearerr'])(self._aobj)
             raise error("")



More information about the Pypy-commit mailing list