Commit 339a3ad8 authored by Gregory P. Smith's avatar Gregory P. Smith

backport of r58023 to fix unit test suite issue1112 on windows

parent c4f5a159
# http://bugs.python.org/issue1413192
# http://python.org/sf/1413192
# #
# 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. # The problem was that the env was deallocated prior to the txn.
import shutil import shutil
...@@ -15,14 +14,28 @@ except ImportError: ...@@ -15,14 +14,28 @@ except ImportError:
env_name = tempfile.mkdtemp() env_name = tempfile.mkdtemp()
env = db.DBEnv() # Wrap test operation in a class so we can control destruction rather than
env.open(env_name, db.DB_CREATE | db.DB_INIT_TXN | db.DB_INIT_MPOOL) # waiting for the controlling Python executable to exit
the_txn = env.txn_begin()
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, 0666, txn=self.the_txn)
del self.env
del self.the_txn
map = db.DB(env) context = Context()
map.open('xxx.db', "p", db.DB_HASH, db.DB_CREATE, 0666, txn=the_txn) del context
# try not to leave a turd (won't help Windows since files are still open) # try not to leave a turd
try: try:
shutil.rmtree(env_name) shutil.rmtree(env_name)
except EnvironmentError: except EnvironmentError:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment