from test import test_support | |
import unittest | |
dbm = test_support.import_module('dbm') | |
class DbmTestCase(unittest.TestCase): | |
def setUp(self): | |
self.filename = test_support.TESTFN | |
self.d = dbm.open(self.filename, 'c') | |
self.d.close() | |
def tearDown(self): | |
for suffix in ['', '.pag', '.dir', '.db']: | |
test_support.unlink(self.filename + suffix) | |
def test_keys(self): | |
self.d = dbm.open(self.filename, 'c') | |
self.assertEqual(self.d.keys(), []) | |
a = [('a', 'b'), ('12345678910', '019237410982340912840198242')] | |
for k, v in a: | |
self.d[k] = v | |
self.assertEqual(sorted(self.d.keys()), sorted(k for (k, v) in a)) | |
for k, v in a: | |
self.assertIn(k, self.d) | |
self.assertEqual(self.d[k], v) | |
self.assertNotIn('xxx', self.d) | |
self.assertRaises(KeyError, lambda: self.d['xxx']) | |
self.d.close() | |
def test_modes(self): | |
for mode in ['r', 'rw', 'w', 'n']: | |
try: | |
self.d = dbm.open(self.filename, mode) | |
self.d.close() | |
except dbm.error: | |
self.fail() | |
def test_main(): | |
test_support.run_unittest(DbmTestCase) | |
if __name__ == '__main__': | |
test_main() |