OLD | NEW |
1 from test import support | 1 from test import support |
2 support.import_module("dbm.ndbm") #skip if not supported | 2 ndbm = support.import_module("dbm.ndbm") #skip if not supported |
3 import unittest | 3 import unittest |
4 import os | 4 import test.test_dbm_base as test_dbm_base |
5 import random | |
6 import dbm.ndbm | |
7 from dbm.ndbm import error | |
8 | 5 |
9 class DbmTestCase(unittest.TestCase): | |
10 | 6 |
11 def setUp(self): | 7 filename = test_dbm_base.filename |
12 self.filename = support.TESTFN | |
13 self.d = dbm.ndbm.open(self.filename, 'c') | |
14 self.d.close() | |
15 | 8 |
16 def tearDown(self): | |
17 for suffix in ['', '.pag', '.dir', '.db']: | |
18 support.unlink(self.filename + suffix) | |
19 | 9 |
20 def test_keys(self): | 10 class DbmTestCase(test_dbm_base.TestDbmBase): |
21 self.d = dbm.ndbm.open(self.filename, 'c') | 11 |
22 self.assertTrue(self.d.keys() == []) | 12 _module = ndbm |
23 self.d['a'] = 'b' | |
24 self.d[b'bytes'] = b'data' | |
25 self.d['12345678910'] = '019237410982340912840198242' | |
26 self.d.keys() | |
27 self.assertIn(b'a', self.d) | |
28 self.assertEqual(self.d[b'bytes'], b'data') | |
29 self.d.close() | |
30 | 13 |
31 def test_modes(self): | 14 def test_modes(self): |
32 for mode in ['r', 'rw', 'w', 'n']: | 15 # Here the order is important, put the 'c' flags at the first make sure |
| 16 # that 'r' won't raise file-not-exists error. |
| 17 for mode in ['c', 'r', 'rw', 'w', 'n']: |
33 try: | 18 try: |
34 self.d = dbm.ndbm.open(self.filename, mode) | 19 self.d = self._module.open(filename, mode) |
35 self.d.close() | 20 self.d.close() |
36 except error: | 21 except error: |
37 self.fail() | 22 self.fail() |
38 | 23 |
| 24 |
39 def test_main(): | 25 def test_main(): |
40 support.run_unittest(DbmTestCase) | 26 support.run_unittest(DbmTestCase) |
41 | 27 |
42 if __name__ == '__main__': | 28 if __name__ == '__main__': |
43 test_main() | 29 test_main() |
OLD | NEW |