blob: 74d32386aef23aab2b28643d24d9a5f24b273fc1 [file] [log] [blame]
Benjamin Petersonee8712c2008-05-20 21:35:26 +00001from test import support
Christian Heimesb186d002008-03-18 15:15:01 +00002import unittest
Neal Norwitze7629c82002-11-02 18:25:08 +00003import os
Christian Heimesb186d002008-03-18 15:15:01 +00004import random
Georg Brandl0a7ac7d2008-05-26 10:29:35 +00005import dbm.ndbm
6from dbm.ndbm import error
Roger E. Massefab8ab81996-12-20 22:36:52 +00007
Christian Heimesb186d002008-03-18 15:15:01 +00008class DbmTestCase(unittest.TestCase):
Roger E. Masse16f9fd21996-12-10 00:06:24 +00009
Christian Heimesb186d002008-03-18 15:15:01 +000010 def setUp(self):
Benjamin Petersonee8712c2008-05-20 21:35:26 +000011 self.filename = support.TESTFN
Georg Brandl0a7ac7d2008-05-26 10:29:35 +000012 self.d = dbm.ndbm.open(self.filename, 'c')
Christian Heimesb186d002008-03-18 15:15:01 +000013 self.d.close()
Fred Drake57a4e902000-09-18 17:56:58 +000014
Christian Heimesb186d002008-03-18 15:15:01 +000015 def tearDown(self):
16 for suffix in ['', '.pag', '.dir', '.db']:
Benjamin Petersonee8712c2008-05-20 21:35:26 +000017 support.unlink(self.filename + suffix)
Roger E. Masse16f9fd21996-12-10 00:06:24 +000018
Christian Heimesb186d002008-03-18 15:15:01 +000019 def test_keys(self):
Georg Brandl0a7ac7d2008-05-26 10:29:35 +000020 self.d = dbm.ndbm.open(self.filename, 'c')
Christian Heimesb186d002008-03-18 15:15:01 +000021 self.assert_(self.d.keys() == [])
22 self.d['a'] = 'b'
23 self.d['12345678910'] = '019237410982340912840198242'
24 self.d.keys()
25 self.assert_(b'a' in self.d)
26 self.d.close()
Neal Norwitze7629c82002-11-02 18:25:08 +000027
Christian Heimesb186d002008-03-18 15:15:01 +000028 def test_modes(self):
29 for mode in ['r', 'rw', 'w', 'n']:
30 try:
Georg Brandl0a7ac7d2008-05-26 10:29:35 +000031 self.d = dbm.ndbm.open(self.filename, mode)
Christian Heimesb186d002008-03-18 15:15:01 +000032 self.d.close()
Georg Brandl0a7ac7d2008-05-26 10:29:35 +000033 except error:
Christian Heimesb186d002008-03-18 15:15:01 +000034 self.fail()
Neal Norwitze7629c82002-11-02 18:25:08 +000035
Christian Heimes180510d2008-03-03 19:15:45 +000036def test_main():
Benjamin Petersonee8712c2008-05-20 21:35:26 +000037 support.run_unittest(DbmTestCase)
Christian Heimes180510d2008-03-03 19:15:45 +000038
39if __name__ == '__main__':
40 test_main()