summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authorGregory P. Smith <greg@mad-scientist.com>2007-09-06 23:06:50 (GMT)
committerGregory P. Smith <greg@mad-scientist.com>2007-09-06 23:06:50 (GMT)
commita5e8ab5d5cf4d8ebe5e40e30e0ae8ab7d7438a83 (patch)
tree63333f55a8f4223c67c6039906f2342d54bcb632 /Lib
parent1cc5544345a6cfbe034f2c804c54660763320220 (diff)
downloadcpython-a5e8ab5d5cf4d8ebe5e40e30e0ae8ab7d7438a83.zip
cpython-a5e8ab5d5cf4d8ebe5e40e30e0ae8ab7d7438a83.tar.gz
cpython-a5e8ab5d5cf4d8ebe5e40e30e0ae8ab7d7438a83.tar.bz2
merge r58023 to fix issue1112 on windows. make this test more robust
and deterministic.
Diffstat (limited to 'Lib')
-rw-r--r--Lib/bsddb/test/test_1413192.py32
1 files changed, 22 insertions, 10 deletions
diff --git a/Lib/bsddb/test/test_1413192.py b/Lib/bsddb/test/test_1413192.py
index 2f27c8e..5caae81 100644
--- a/Lib/bsddb/test/test_1413192.py
+++ b/Lib/bsddb/test/test_1413192.py
@@ -1,7 +1,6 @@
-
-# http://python.org/sf/1413192
+# http://bugs.python.org/issue1413192
#
-# This test relies on the variable names, see the bug report for details.
+# See the bug report for details.
# The problem was that the env was deallocated prior to the txn.
import shutil
@@ -15,15 +14,28 @@ except ImportError:
env_name = tempfile.mkdtemp()
-env = db.DBEnv()
-env.open(env_name, db.DB_CREATE | db.DB_INIT_TXN | db.DB_INIT_MPOOL)
-the_txn = env.txn_begin()
+# Wrap test operation in a class so we can control destruction rather than
+# waiting for the controlling Python executable to exit
+
+class Context:
+
+ def __init__(self):
+ self.env = db.DBEnv()
+ self.env.open(env_name,
+ db.DB_CREATE | db.DB_INIT_TXN | db.DB_INIT_MPOOL)
+ self.the_txn = self.env.txn_begin()
+
+ self.map = db.DB(self.env)
+ self.map.open('xxx.db', "p",
+ db.DB_HASH, db.DB_CREATE, 0o666, txn=self.the_txn)
+ del self.env
+ del self.the_txn
+
-map = db.DB(env)
-map.open('xxx.db',
- "p", db.DB_HASH, db.DB_CREATE, 0o666, txn=the_txn)
+context = Context()
+del context
-# try not to leave a turd (won't help Windows since files are still open)
+# try not to leave a turd
try:
shutil.rmtree(env_name)
except EnvironmentError: