|
1 """ |
|
2 TestCases for checking set_get_returns_none. |
|
3 """ |
|
4 |
|
5 import os, string |
|
6 import unittest |
|
7 |
|
8 from test_all import db, verbose, get_new_database_path |
|
9 |
|
10 |
|
11 #---------------------------------------------------------------------- |
|
12 |
|
13 class GetReturnsNoneTestCase(unittest.TestCase): |
|
14 def setUp(self): |
|
15 self.filename = get_new_database_path() |
|
16 |
|
17 def tearDown(self): |
|
18 try: |
|
19 os.remove(self.filename) |
|
20 except os.error: |
|
21 pass |
|
22 |
|
23 |
|
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) |
|
28 |
|
29 for x in string.letters: |
|
30 d.put(x, x * 40) |
|
31 |
|
32 data = d.get('bad key') |
|
33 self.assertEqual(data, None) |
|
34 |
|
35 data = d.get(string.letters[0]) |
|
36 self.assertEqual(data, string.letters[0]*40) |
|
37 |
|
38 count = 0 |
|
39 c = d.cursor() |
|
40 rec = c.first() |
|
41 while rec: |
|
42 count = count + 1 |
|
43 rec = c.next() |
|
44 |
|
45 self.assertEqual(rec, None) |
|
46 self.assertEqual(count, len(string.letters)) |
|
47 |
|
48 c.close() |
|
49 d.close() |
|
50 |
|
51 |
|
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) |
|
56 |
|
57 for x in string.letters: |
|
58 d.put(x, x * 40) |
|
59 |
|
60 self.assertRaises(db.DBNotFoundError, d.get, 'bad key') |
|
61 self.assertRaises(KeyError, d.get, 'bad key') |
|
62 |
|
63 data = d.get(string.letters[0]) |
|
64 self.assertEqual(data, string.letters[0]*40) |
|
65 |
|
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 |
|
77 |
|
78 self.assertNotEqual(rec, None) |
|
79 self.assert_(exceptionHappened) |
|
80 self.assertEqual(count, len(string.letters)) |
|
81 |
|
82 c.close() |
|
83 d.close() |
|
84 |
|
85 #---------------------------------------------------------------------- |
|
86 |
|
87 def test_suite(): |
|
88 return unittest.makeSuite(GetReturnsNoneTestCase) |
|
89 |
|
90 |
|
91 if __name__ == '__main__': |
|
92 unittest.main(defaultTest='test_suite') |