ยปCore Development>Code coverage>Lib/bsddb/test/test_dbobj.py

Python code coverage for Lib/bsddb/test/test_dbobj.py

#countcontent
1n/a
2n/aimport os, string
3n/aimport unittest
4n/a
5n/afrom test_all import db, dbobj, test_support, get_new_environment_path, \
6n/a get_new_database_path
7n/a
8n/a#----------------------------------------------------------------------
9n/a
10n/aclass dbobjTestCase(unittest.TestCase):
11n/a """Verify that dbobj.DB and dbobj.DBEnv work properly"""
12n/a db_name = 'test-dbobj.db'
13n/a
14n/a def setUp(self):
15n/a self.homeDir = get_new_environment_path()
16n/a
17n/a def tearDown(self):
18n/a if hasattr(self, 'db'):
19n/a del self.db
20n/a if hasattr(self, 'env'):
21n/a del self.env
22n/a test_support.rmtree(self.homeDir)
23n/a
24n/a def test01_both(self):
25n/a class TestDBEnv(dbobj.DBEnv): pass
26n/a class TestDB(dbobj.DB):
27n/a def put(self, key, *args, **kwargs):
28n/a key = key.upper()
29n/a # call our parent classes put method with an upper case key
30n/a return dbobj.DB.put(self, key, *args, **kwargs)
31n/a self.env = TestDBEnv()
32n/a self.env.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL)
33n/a self.db = TestDB(self.env)
34n/a self.db.open(self.db_name, db.DB_HASH, db.DB_CREATE)
35n/a self.db.put('spam', 'eggs')
36n/a self.assertEqual(self.db.get('spam'), None,
37n/a "overridden dbobj.DB.put() method failed [1]")
38n/a self.assertEqual(self.db.get('SPAM'), 'eggs',
39n/a "overridden dbobj.DB.put() method failed [2]")
40n/a self.db.close()
41n/a self.env.close()
42n/a
43n/a def test02_dbobj_dict_interface(self):
44n/a self.env = dbobj.DBEnv()
45n/a self.env.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL)
46n/a self.db = dbobj.DB(self.env)
47n/a self.db.open(self.db_name+'02', db.DB_HASH, db.DB_CREATE)
48n/a # __setitem__
49n/a self.db['spam'] = 'eggs'
50n/a # __len__
51n/a self.assertEqual(len(self.db), 1)
52n/a # __getitem__
53n/a self.assertEqual(self.db['spam'], 'eggs')
54n/a # __del__
55n/a del self.db['spam']
56n/a self.assertEqual(self.db.get('spam'), None, "dbobj __del__ failed")
57n/a self.db.close()
58n/a self.env.close()
59n/a
60n/a def test03_dbobj_type_before_open(self):
61n/a # Ensure this doesn't cause a segfault.
62n/a self.assertRaises(db.DBInvalidArgError, db.DB().type)
63n/a
64n/a#----------------------------------------------------------------------
65n/a
66n/adef test_suite():
67n/a return unittest.makeSuite(dbobjTestCase)
68n/a
69n/aif __name__ == '__main__':
70n/a unittest.main(defaultTest='test_suite')