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__":