2
"""Test script for the dumbdbm module
3
Original by Roger E. Masse
9
from test import test_support
11
_fname = test_support.TESTFN
14
for ext in [".dir", ".dat", ".bak"]:
16
os.unlink(_fname + ext)
20
class DumbDBMTestCase(unittest.TestCase):
30
def __init__(self, *args):
31
unittest.TestCase.__init__(self, *args)
33
def test_dumbdbm_creation(self):
34
f = dumbdbm.open(_fname, 'c')
35
self.assertEqual(f.keys(), [])
36
for key in self._dict:
37
f[key] = self._dict[key]
41
def test_close_twice(self):
42
f = dumbdbm.open(_fname)
44
self.assertEqual(f['a'], 'b')
48
def test_dumbdbm_modification(self):
50
f = dumbdbm.open(_fname, 'w')
51
self._dict['g'] = f['g'] = "indented"
55
def test_dumbdbm_read(self):
57
f = dumbdbm.open(_fname, 'r')
61
def test_dumbdbm_keys(self):
63
f = dumbdbm.open(_fname)
64
keys = self.keys_helper(f)
67
def test_write_write_read(self):
68
# test for bug #482460
69
f = dumbdbm.open(_fname)
73
f = dumbdbm.open(_fname)
74
self.assertEqual(f['1'], 'hello2')
77
def read_helper(self, f):
78
keys = self.keys_helper(f)
79
for key in self._dict:
80
self.assertEqual(self._dict[key], f[key])
83
f = dumbdbm.open(_fname, 'w')
88
def keys_helper(self, f):
91
dkeys = self._dict.keys()
93
self.assertEqual(keys, dkeys)
96
# Perform randomized operations. This doesn't make assumptions about
98
def test_random(self):
100
d = {} # mirror the database
101
for dummy in range(5):
102
f = dumbdbm.open(_fname)
103
for dummy in range(100):
104
k = random.choice('abcdefghijklm')
105
if random.random() < 0.2:
110
v = random.choice('abc') * random.randrange(10000)
113
self.assertEqual(f[k], v)
116
f = dumbdbm.open(_fname)
121
self.assertEqual(expected, got)
132
test_support.run_unittest(DumbDBMTestCase)
136
if __name__ == "__main__":