[Python-checkins] python/dist/src/Lib/bsddb/test test_associate.py, 1.9, 1.10

greg@users.sourceforge.net greg at users.sourceforge.net
Mon Jun 6 12:26:27 CEST 2005


Update of /cvsroot/python/python/dist/src/Lib/bsddb/test
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2717/test

Modified Files:
	test_associate.py 
Log Message:
test case for pybsddb SF bug id 1215432


Index: test_associate.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/bsddb/test/test_associate.py,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -d -r1.9 -r1.10
--- test_associate.py	6 Jun 2005 09:52:10 -0000	1.9
+++ test_associate.py	6 Jun 2005 10:26:25 -0000	1.10
@@ -88,6 +88,54 @@
 
 #----------------------------------------------------------------------
 
+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 @@
     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))



More information about the Python-checkins mailing list