diff options
Diffstat (limited to 'lib/python2.7/test/test_dumbdbm.py')
-rw-r--r-- | lib/python2.7/test/test_dumbdbm.py | 179 |
1 files changed, 0 insertions, 179 deletions
diff --git a/lib/python2.7/test/test_dumbdbm.py b/lib/python2.7/test/test_dumbdbm.py deleted file mode 100644 index 041fac1..0000000 --- a/lib/python2.7/test/test_dumbdbm.py +++ /dev/null @@ -1,179 +0,0 @@ -#! /usr/bin/env python -"""Test script for the dumbdbm module - Original by Roger E. Masse -""" - -import os -import unittest -import dumbdbm -from test import test_support - -_fname = test_support.TESTFN - -def _delete_files(): - for ext in [".dir", ".dat", ".bak"]: - try: - os.unlink(_fname + ext) - except OSError: - pass - -class DumbDBMTestCase(unittest.TestCase): - _dict = {'0': '', - 'a': 'Python:', - 'b': 'Programming', - 'c': 'the', - 'd': 'way', - 'f': 'Guido', - 'g': 'intended' - } - - def __init__(self, *args): - unittest.TestCase.__init__(self, *args) - - def test_dumbdbm_creation(self): - f = dumbdbm.open(_fname, 'c') - self.assertEqual(f.keys(), []) - for key in self._dict: - f[key] = self._dict[key] - self.read_helper(f) - f.close() - - def test_dumbdbm_creation_mode(self): - # On platforms without chmod, don't do anything. - if not (hasattr(os, 'chmod') and hasattr(os, 'umask')): - return - - try: - old_umask = os.umask(0002) - f = dumbdbm.open(_fname, 'c', 0637) - f.close() - finally: - os.umask(old_umask) - - expected_mode = 0635 - if os.name != 'posix': - # Windows only supports setting the read-only attribute. - # This shouldn't fail, but doesn't work like Unix either. - expected_mode = 0666 - - import stat - st = os.stat(_fname + '.dat') - self.assertEqual(stat.S_IMODE(st.st_mode), expected_mode) - st = os.stat(_fname + '.dir') - self.assertEqual(stat.S_IMODE(st.st_mode), expected_mode) - - def test_close_twice(self): - f = dumbdbm.open(_fname) - f['a'] = 'b' - self.assertEqual(f['a'], 'b') - f.close() - f.close() - - def test_dumbdbm_modification(self): - self.init_db() - f = dumbdbm.open(_fname, 'w') - self._dict['g'] = f['g'] = "indented" - self.read_helper(f) - f.close() - - def test_dumbdbm_read(self): - self.init_db() - f = dumbdbm.open(_fname, 'r') - self.read_helper(f) - f.close() - - def test_dumbdbm_keys(self): - self.init_db() - f = dumbdbm.open(_fname) - keys = self.keys_helper(f) - f.close() - - def test_write_write_read(self): - # test for bug #482460 - f = dumbdbm.open(_fname) - f['1'] = 'hello' - f['1'] = 'hello2' - f.close() - f = dumbdbm.open(_fname) - self.assertEqual(f['1'], 'hello2') - f.close() - - def test_line_endings(self): - # test for bug #1172763: dumbdbm would die if the line endings - # weren't what was expected. - f = dumbdbm.open(_fname) - f['1'] = 'hello' - f['2'] = 'hello2' - f.close() - - # Mangle the file by adding \r before each newline - data = open(_fname + '.dir').read() - data = data.replace('\n', '\r\n') - open(_fname + '.dir', 'wb').write(data) - - f = dumbdbm.open(_fname) - self.assertEqual(f['1'], 'hello') - self.assertEqual(f['2'], 'hello2') - - - def read_helper(self, f): - keys = self.keys_helper(f) - for key in self._dict: - self.assertEqual(self._dict[key], f[key]) - - def init_db(self): - f = dumbdbm.open(_fname, 'w') - for k in self._dict: - f[k] = self._dict[k] - f.close() - - def keys_helper(self, f): - keys = f.keys() - keys.sort() - dkeys = self._dict.keys() - dkeys.sort() - self.assertEqual(keys, dkeys) - return keys - - # Perform randomized operations. This doesn't make assumptions about - # what *might* fail. - def test_random(self): - import random - d = {} # mirror the database - for dummy in range(5): - f = dumbdbm.open(_fname) - for dummy in range(100): - k = random.choice('abcdefghijklm') - if random.random() < 0.2: - if k in d: - del d[k] - del f[k] - else: - v = random.choice('abc') * random.randrange(10000) - d[k] = v - f[k] = v - self.assertEqual(f[k], v) - f.close() - - f = dumbdbm.open(_fname) - expected = d.items() - expected.sort() - got = f.items() - got.sort() - self.assertEqual(expected, got) - f.close() - - def tearDown(self): - _delete_files() - - def setUp(self): - _delete_files() - -def test_main(): - try: - test_support.run_unittest(DumbDBMTestCase) - finally: - _delete_files() - -if __name__ == "__main__": - test_main() |