diff options
author | Guido van Rossum <guido@python.org> | 2007-11-05 19:43:04 (GMT) |
---|---|---|
committer | Guido van Rossum <guido@python.org> | 2007-11-05 19:43:04 (GMT) |
commit | 7767711f543b39a5a5e2e377e0eee33a0e50f700 (patch) | |
tree | 67a05ffaba8f500e48ccf16d451a7999576ea5da /Lib/bsddb | |
parent | c4cb3b8aa14540f730f82f64add243d6ba8b6fcd (diff) | |
download | cpython-7767711f543b39a5a5e2e377e0eee33a0e50f700.zip cpython-7767711f543b39a5a5e2e377e0eee33a0e50f700.tar.gz cpython-7767711f543b39a5a5e2e377e0eee33a0e50f700.tar.bz2 |
Merged revisions 58817-58861 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r58822 | brett.cannon | 2007-11-02 23:47:02 -0700 (Fri, 02 Nov 2007) | 2 lines
Add a missing quotation mark.
........
r58840 | skip.montanaro | 2007-11-04 07:56:52 -0800 (Sun, 04 Nov 2007) | 2 lines
Note change to get_dialect semantics in 2.5. Will backport to 2.5.
........
r58844 | georg.brandl | 2007-11-04 09:43:49 -0800 (Sun, 04 Nov 2007) | 2 lines
Fix syntax for versionchanged markup.
........
r58850 | gregory.p.smith | 2007-11-04 18:32:26 -0800 (Sun, 04 Nov 2007) | 9 lines
Fixes bug 477182 on pybsddb.sf.net. DB objects now load the flags and
pay attention to them when opening an existing database. This means
that d[] behaves properly even on databases previously created with DB_DUP
or DB_DUPSORT flags to allow duplicate keys.
http://sourceforge.net/tracker/index.php?func=detail&aid=477182&group_id=13900&atid=113900
Do not backport, this bugfix could be considered an API change.
........
r58851 | gregory.p.smith | 2007-11-04 18:56:31 -0800 (Sun, 04 Nov 2007) | 3 lines
Add the bsddb.db.DBEnv.lock_id_free method.
Improve test_lock's tempdir creation and cleanup.
........
r58852 | gregory.p.smith | 2007-11-05 01:06:28 -0800 (Mon, 05 Nov 2007) | 3 lines
* db->get_types is only available in BerkeleyDB >= 4.2
* get compiling with older versions of python again for a stand alone release.
........
r58853 | gregory.p.smith | 2007-11-05 01:07:40 -0800 (Mon, 05 Nov 2007) | 2 lines
* db->get_flags is only available in BerkeleyDB >= 4.2
........
r58854 | mark.summerfield | 2007-11-05 01:22:48 -0800 (Mon, 05 Nov 2007) | 3 lines
Added cross-references between the various archive file formats.
........
r58857 | mark.summerfield | 2007-11-05 06:38:50 -0800 (Mon, 05 Nov 2007) | 5 lines
Clarified the fact that you can have comments for individual archive
members even though comments to the archive itself aren't currently
supported.
........
Diffstat (limited to 'Lib/bsddb')
-rw-r--r-- | Lib/bsddb/test/test_lock.py | 15 | ||||
-rw-r--r-- | Lib/bsddb/test/test_misc.py | 28 |
2 files changed, 37 insertions, 6 deletions
diff --git a/Lib/bsddb/test/test_lock.py b/Lib/bsddb/test/test_lock.py index fcab283..bbd88bd 100644 --- a/Lib/bsddb/test/test_lock.py +++ b/Lib/bsddb/test/test_lock.py @@ -2,11 +2,12 @@ TestCases for testing the locking sub-system. """ +import os +from pprint import pprint import shutil -import sys, os +import sys import tempfile import time -from pprint import pprint try: from threading import Thread, currentThread @@ -31,10 +32,10 @@ except ImportError: class LockingTestCase(unittest.TestCase): def setUp(self): - self.homeDir = tempfile.mkdtemp() + self.homeDir = tempfile.mkdtemp('.test_lock') self.env = db.DBEnv() self.env.open(self.homeDir, db.DB_THREAD | db.DB_INIT_MPOOL | - db.DB_INIT_LOCK | db.DB_CREATE) + db.DB_INIT_LOCK | db.DB_CREATE) def tearDown(self): @@ -57,8 +58,8 @@ class LockingTestCase(unittest.TestCase): self.env.lock_put(lock) if verbose: print("Released lock: %s" % lock) - - + if db.version() >= (4,0): + self.env.lock_id_free(anID) def test02_threaded(self): @@ -119,6 +120,8 @@ class LockingTestCase(unittest.TestCase): self.env.lock_put(lock) if verbose: print("%s: Released %s lock: %s" % (name, lt, lock)) + if db.version() >= (4,0): + self.env.lock_id_free(anID) #---------------------------------------------------------------------- diff --git a/Lib/bsddb/test/test_misc.py b/Lib/bsddb/test/test_misc.py index b3248ce..b7a6710 100644 --- a/Lib/bsddb/test/test_misc.py +++ b/Lib/bsddb/test/test_misc.py @@ -85,6 +85,34 @@ class MiscTestCase(unittest.TestCase): db1.close() os.unlink(self.filename) + def test_DB_set_flags_persists(self): + if db.version() < (4,2): + # The get_flags API required for this to work is only available + # in BerkeleyDB >= 4.2 + return + try: + db1 = db.DB() + db1.set_flags(db.DB_DUPSORT) + db1.open(self.filename, db.DB_HASH, db.DB_CREATE) + db1[b'a'] = b'eh' + db1[b'a'] = b'A' + self.assertEqual([(b'a', b'A')], db1.items()) + db1.put(b'a', b'Aa') + self.assertEqual([(b'a', b'A'), (b'a', b'Aa')], db1.items()) + db1.close() + db1 = db.DB() + # no set_flags call, we're testing that it reads and obeys + # the flags on open. + db1.open(self.filename, db.DB_HASH) + self.assertEqual([(b'a', b'A'), (b'a', b'Aa')], db1.items()) + # if it read the flags right this will replace all values + # for key b'a' instead of adding a new one. (as a dict should) + db1[b'a'] = b'new A' + self.assertEqual([(b'a', b'new A')], db1.items()) + finally: + db1.close() + os.unlink(self.filename) + #---------------------------------------------------------------------- |