symbian-qemu-0.9.1-12/python-2.6.1/Lib/bsddb/test/test_pickle.py
changeset 1 2fb8b9db1c86
equal deleted inserted replaced
0:ffa851df0825 1:2fb8b9db1c86
       
     1 
       
     2 import os
       
     3 import pickle
       
     4 try:
       
     5     import cPickle
       
     6 except ImportError:
       
     7     cPickle = None
       
     8 import unittest
       
     9 
       
    10 from test_all import db, test_support, get_new_environment_path, get_new_database_path
       
    11 
       
    12 #----------------------------------------------------------------------
       
    13 
       
    14 class pickleTestCase(unittest.TestCase):
       
    15     """Verify that DBError can be pickled and unpickled"""
       
    16     db_name = 'test-dbobj.db'
       
    17 
       
    18     def setUp(self):
       
    19         self.homeDir = get_new_environment_path()
       
    20 
       
    21     def tearDown(self):
       
    22         if hasattr(self, 'db'):
       
    23             del self.db
       
    24         if hasattr(self, 'env'):
       
    25             del self.env
       
    26         test_support.rmtree(self.homeDir)
       
    27 
       
    28     def _base_test_pickle_DBError(self, pickle):
       
    29         self.env = db.DBEnv()
       
    30         self.env.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL)
       
    31         self.db = db.DB(self.env)
       
    32         self.db.open(self.db_name, db.DB_HASH, db.DB_CREATE)
       
    33         self.db.put('spam', 'eggs')
       
    34         self.assertEqual(self.db['spam'], 'eggs')
       
    35         try:
       
    36             self.db.put('spam', 'ham', flags=db.DB_NOOVERWRITE)
       
    37         except db.DBError, egg:
       
    38             pickledEgg = pickle.dumps(egg)
       
    39             #print repr(pickledEgg)
       
    40             rottenEgg = pickle.loads(pickledEgg)
       
    41             if rottenEgg.args != egg.args or type(rottenEgg) != type(egg):
       
    42                 raise Exception, (rottenEgg, '!=', egg)
       
    43         else:
       
    44             raise Exception, "where's my DBError exception?!?"
       
    45 
       
    46         self.db.close()
       
    47         self.env.close()
       
    48 
       
    49     def test01_pickle_DBError(self):
       
    50         self._base_test_pickle_DBError(pickle=pickle)
       
    51 
       
    52     if cPickle:
       
    53         def test02_cPickle_DBError(self):
       
    54             self._base_test_pickle_DBError(pickle=cPickle)
       
    55 
       
    56 #----------------------------------------------------------------------
       
    57 
       
    58 def test_suite():
       
    59     return unittest.makeSuite(pickleTestCase)
       
    60 
       
    61 if __name__ == '__main__':
       
    62     unittest.main(defaultTest='test_suite')