File: test_1413192.py

package info (click to toggle)
jython 2.5.3-3%2Bdeb8u1
  • links: PTS, VCS
  • area: main
  • in suites: jessie
  • size: 43,404 kB
  • ctags: 105,521
  • sloc: python: 351,322; java: 216,346; xml: 1,547; sh: 330; perl: 124; ansic: 102; makefile: 101
file content (47 lines) | stat: -rw-r--r-- 1,179 bytes parent folder | download | duplicates (8)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# http://bugs.python.org/issue1413192
#
# See the bug report for details.
# The problem was that the env was deallocated prior to the txn.

import shutil
import tempfile
import warnings
try:
    # For Pythons w/distutils and add-on pybsddb
    from bsddb3 import db
except ImportError:
    # For Python >= 2.3 builtin bsddb distribution
    from bsddb import db

env_name = tempfile.mkdtemp()

# 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, 0666, txn=self.the_txn)
        del self.env
        del self.the_txn


warnings.filterwarnings('ignore', 'DBTxn aborted in destructor')
try:
    context = Context()
    del context
finally:
    warnings.resetwarnings()

# try not to leave a turd
try:
    shutil.rmtree(env_name)
except EnvironmentError:
    pass