blob: 6d0a36de7081a998685da168e2eeef68d67f3f35 [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'
Brett Cannon7317c1e2008-11-25 19:19:17 +000023 self.d[b'bytes'] = b'data'
Christian Heimesb186d002008-03-18 15:15:01 +000024 self.d['12345678910'] = '019237410982340912840198242'
25 self.d.keys()
26 self.assert_(b'a' in self.d)
Brett Cannon7317c1e2008-11-25 19:19:17 +000027 self.assertEqual(self.d[b'bytes'], b'data')
Christian Heimesb186d002008-03-18 15:15:01 +000028 self.d.close()
Neal Norwitze7629c82002-11-02 18:25:08 +000029
Christian Heimesb186d002008-03-18 15:15:01 +000030 def test_modes(self):
31 for mode in ['r', 'rw', 'w', 'n']:
32 try:
Georg Brandl0a7ac7d2008-05-26 10:29:35 +000033 self.d = dbm.ndbm.open(self.filename, mode)
Christian Heimesb186d002008-03-18 15:15:01 +000034 self.d.close()
Georg Brandl0a7ac7d2008-05-26 10:29:35 +000035 except error:
Christian Heimesb186d002008-03-18 15:15:01 +000036 self.fail()
Neal Norwitze7629c82002-11-02 18:25:08 +000037
Christian Heimes180510d2008-03-03 19:15:45 +000038def test_main():
Benjamin Petersonee8712c2008-05-20 21:35:26 +000039 support.run_unittest(DbmTestCase)
Christian Heimes180510d2008-03-03 19:15:45 +000040
41if __name__ == '__main__':
42 test_main()