]> granicus.if.org Git - python/commitdiff
merge r58023 to fix issue1112 on windows. make this test more robust
authorGregory P. Smith <greg@mad-scientist.com>
Thu, 6 Sep 2007 23:06:50 +0000 (23:06 +0000)
committerGregory P. Smith <greg@mad-scientist.com>
Thu, 6 Sep 2007 23:06:50 +0000 (23:06 +0000)
and deterministic.

Lib/bsddb/test/test_1413192.py

index 2f27c8e5b77d06a81405996413a6e9947a3d8df6..5caae81d98594b8fd552177f09ce2c1a0353125c 100644 (file)
@@ -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: