move sections
[python/dscho.git] / Lib / bsddb / test / test_get_none.py
blob4aaf2fd5cc59266e7b478a35bdb431abfa6d19e8
1 """
2 TestCases for checking set_get_returns_none.
3 """
5 import os, string
6 import unittest
8 from test_all import db, verbose, get_new_database_path
11 #----------------------------------------------------------------------
13 class GetReturnsNoneTestCase(unittest.TestCase):
14 def setUp(self):
15 self.filename = get_new_database_path()
17 def tearDown(self):
18 try:
19 os.remove(self.filename)
20 except os.error:
21 pass
24 def test01_get_returns_none(self):
25 d = db.DB()
26 d.open(self.filename, db.DB_BTREE, db.DB_CREATE)
27 d.set_get_returns_none(1)
29 for x in string.letters:
30 d.put(x, x * 40)
32 data = d.get('bad key')
33 self.assertEqual(data, None)
35 data = d.get(string.letters[0])
36 self.assertEqual(data, string.letters[0]*40)
38 count = 0
39 c = d.cursor()
40 rec = c.first()
41 while rec:
42 count = count + 1
43 rec = c.next()
45 self.assertEqual(rec, None)
46 self.assertEqual(count, len(string.letters))
48 c.close()
49 d.close()
52 def test02_get_raises_exception(self):
53 d = db.DB()
54 d.open(self.filename, db.DB_BTREE, db.DB_CREATE)
55 d.set_get_returns_none(0)
57 for x in string.letters:
58 d.put(x, x * 40)
60 self.assertRaises(db.DBNotFoundError, d.get, 'bad key')
61 self.assertRaises(KeyError, d.get, 'bad key')
63 data = d.get(string.letters[0])
64 self.assertEqual(data, string.letters[0]*40)
66 count = 0
67 exceptionHappened = 0
68 c = d.cursor()
69 rec = c.first()
70 while rec:
71 count = count + 1
72 try:
73 rec = c.next()
74 except db.DBNotFoundError: # end of the records
75 exceptionHappened = 1
76 break
78 self.assertNotEqual(rec, None)
79 self.assert_(exceptionHappened)
80 self.assertEqual(count, len(string.letters))
82 c.close()
83 d.close()
85 #----------------------------------------------------------------------
87 def test_suite():
88 return unittest.makeSuite(GetReturnsNoneTestCase)
91 if __name__ == '__main__':
92 unittest.main(defaultTest='test_suite')