diff options
author | Gregory P. Smith <greg@mad-scientist.com> | 2005-06-06 10:26:25 (GMT) |
---|---|---|
committer | Gregory P. Smith <greg@mad-scientist.com> | 2005-06-06 10:26:25 (GMT) |
commit | 9e282055026eb01825060593d7b5d866e45d0d92 (patch) | |
tree | 564c068ed3b134bdd77918023b37f585f8d1e95b /Lib/bsddb/test | |
parent | 692ca9a0cbd32141fdc674ec2707b5893a8503b7 (diff) | |
download | cpython-9e282055026eb01825060593d7b5d866e45d0d92.zip cpython-9e282055026eb01825060593d7b5d866e45d0d92.tar.gz cpython-9e282055026eb01825060593d7b5d866e45d0d92.tar.bz2 |
test case for pybsddb SF bug id 1215432
Diffstat (limited to 'Lib/bsddb/test')
-rw-r--r-- | Lib/bsddb/test/test_associate.py | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/Lib/bsddb/test/test_associate.py b/Lib/bsddb/test/test_associate.py index ed12e19..e715cb1 100644 --- a/Lib/bsddb/test/test_associate.py +++ b/Lib/bsddb/test/test_associate.py @@ -88,6 +88,54 @@ musicdata = { #---------------------------------------------------------------------- +class AssociateErrorTestCase(unittest.TestCase): + def setUp(self): + self.filename = self.__class__.__name__ + '.db' + homeDir = os.path.join(os.path.dirname(sys.argv[0]), 'db_home') + self.homeDir = homeDir + try: os.mkdir(homeDir) + except os.error: pass + self.env = db.DBEnv() + self.env.open(homeDir, db.DB_CREATE | db.DB_INIT_MPOOL) + + def tearDown(self): + self.env.close() + import glob + files = glob.glob(os.path.join(self.homeDir, '*')) + for file in files: + os.remove(file) + + + def test00_associateDBError(self): + if verbose: + print '\n', '-=' * 30 + print "Running %s.test00_associateDBError..." % \ + self.__class__.__name__ + + dupDB = db.DB(self.env) + dupDB.set_flags(db.DB_DUP) + dupDB.open(self.filename, "primary", db.DB_BTREE, db.DB_CREATE) + + secDB = db.DB(self.env) + secDB.open(self.filename, "secondary", db.DB_BTREE, db.DB_CREATE) + + # dupDB has been configured to allow duplicates, it can't + # associate with a secondary. BerkeleyDB will return an error. + try: + dupDB.associate(secDB, lambda a, b: a+b) + except db.DBError: + # good + secDB.close() + dupDB.close() + else: + secDB.close() + dupDB.close() + self.fail("DBError exception was expected") + + + +#---------------------------------------------------------------------- + class AssociateTestCase(unittest.TestCase): keytype = '' @@ -363,6 +411,8 @@ def test_suite(): suite = unittest.TestSuite() if db.version() >= (3, 3, 11): + suite.addTest(unittest.makeSuite(AssociateErrorTestCase)) + suite.addTest(unittest.makeSuite(AssociateHashTestCase)) suite.addTest(unittest.makeSuite(AssociateBTreeTestCase)) suite.addTest(unittest.makeSuite(AssociateRecnoTestCase)) |