Initial commit of OpenSPARC T2 architecture model.
[OpenSPARC-T2-SAM] / sam-t2 / devtools / amd64 / lib / python2.4 / bsddb / test / test_get_none.py
CommitLineData
920dae64
AT
1"""
2TestCases for checking set_get_returns_none.
3"""
4
5import sys, os, string
6import tempfile
7from pprint import pprint
8import unittest
9
10try:
11 # For Pythons w/distutils pybsddb
12 from bsddb3 import db
13except ImportError:
14 # For Python 2.3
15 from bsddb import db
16
17from test_all import verbose
18
19
20#----------------------------------------------------------------------
21
22class GetReturnsNoneTestCase(unittest.TestCase):
23 def setUp(self):
24 self.filename = tempfile.mktemp()
25
26 def tearDown(self):
27 try:
28 os.remove(self.filename)
29 except os.error:
30 pass
31
32
33 def test01_get_returns_none(self):
34 d = db.DB()
35 d.open(self.filename, db.DB_BTREE, db.DB_CREATE)
36 d.set_get_returns_none(1)
37
38 for x in string.letters:
39 d.put(x, x * 40)
40
41 data = d.get('bad key')
42 assert data == None
43
44 data = d.get('a')
45 assert data == 'a'*40
46
47 count = 0
48 c = d.cursor()
49 rec = c.first()
50 while rec:
51 count = count + 1
52 rec = c.next()
53
54 assert rec == None
55 assert count == 52
56
57 c.close()
58 d.close()
59
60
61 def test02_get_raises_exception(self):
62 d = db.DB()
63 d.open(self.filename, db.DB_BTREE, db.DB_CREATE)
64 d.set_get_returns_none(0)
65
66 for x in string.letters:
67 d.put(x, x * 40)
68
69 self.assertRaises(db.DBNotFoundError, d.get, 'bad key')
70 self.assertRaises(KeyError, d.get, 'bad key')
71
72 data = d.get('a')
73 assert data == 'a'*40
74
75 count = 0
76 exceptionHappened = 0
77 c = d.cursor()
78 rec = c.first()
79 while rec:
80 count = count + 1
81 try:
82 rec = c.next()
83 except db.DBNotFoundError: # end of the records
84 exceptionHappened = 1
85 break
86
87 assert rec != None
88 assert exceptionHappened
89 assert count == 52
90
91 c.close()
92 d.close()
93
94#----------------------------------------------------------------------
95
96def test_suite():
97 return unittest.makeSuite(GetReturnsNoneTestCase)
98
99
100if __name__ == '__main__':
101 unittest.main(defaultTest='test_suite')