From: Gregory P. Smith Date: Mon, 6 Jun 2005 10:26:25 +0000 (+0000) Subject: test case for pybsddb SF bug id 1215432 X-Git-Tag: v2.5a0~1736 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=9e282055026eb01825060593d7b5d866e45d0d92;p=python test case for pybsddb SF bug id 1215432 --- diff --git a/Lib/bsddb/test/test_associate.py b/Lib/bsddb/test/test_associate.py index ed12e19371..e715cb1982 100644 --- a/Lib/bsddb/test/test_associate.py +++ b/Lib/bsddb/test/test_associate.py @@ -86,6 +86,54 @@ musicdata = { 99: ("unknown artist", "Unnamed song", "Unknown"), } +#---------------------------------------------------------------------- + +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") + + + #---------------------------------------------------------------------- @@ -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))