diff options
Diffstat (limited to 'lib/python2.7/test/test_shelve.py')
-rw-r--r-- | lib/python2.7/test/test_shelve.py | 163 |
1 files changed, 0 insertions, 163 deletions
diff --git a/lib/python2.7/test/test_shelve.py b/lib/python2.7/test/test_shelve.py deleted file mode 100644 index df56625..0000000 --- a/lib/python2.7/test/test_shelve.py +++ /dev/null @@ -1,163 +0,0 @@ -import os -import unittest -import shelve -import glob -from test import test_support - -test_support.import_module('anydbm', deprecated=True) - -class TestCase(unittest.TestCase): - - fn = "shelftemp" + os.extsep + "db" - - def test_close(self): - d1 = {} - s = shelve.Shelf(d1, protocol=2, writeback=False) - s['key1'] = [1,2,3,4] - self.assertEqual(s['key1'], [1,2,3,4]) - self.assertEqual(len(s), 1) - s.close() - self.assertRaises(ValueError, len, s) - try: - s['key1'] - except ValueError: - pass - else: - self.fail('Closed shelf should not find a key') - - def test_ascii_file_shelf(self): - try: - s = shelve.open(self.fn, protocol=0) - s['key1'] = (1,2,3,4) - self.assertEqual(s['key1'], (1,2,3,4)) - s.close() - finally: - for f in glob.glob(self.fn+"*"): - os.unlink(f) - - def test_binary_file_shelf(self): - try: - s = shelve.open(self.fn, protocol=1) - s['key1'] = (1,2,3,4) - self.assertEqual(s['key1'], (1,2,3,4)) - s.close() - finally: - for f in glob.glob(self.fn+"*"): - os.unlink(f) - - def test_proto2_file_shelf(self): - try: - s = shelve.open(self.fn, protocol=2) - s['key1'] = (1,2,3,4) - self.assertEqual(s['key1'], (1,2,3,4)) - s.close() - finally: - for f in glob.glob(self.fn+"*"): - os.unlink(f) - - def test_in_memory_shelf(self): - d1 = {} - s = shelve.Shelf(d1, protocol=0) - s['key1'] = (1,2,3,4) - self.assertEqual(s['key1'], (1,2,3,4)) - s.close() - d2 = {} - s = shelve.Shelf(d2, protocol=1) - s['key1'] = (1,2,3,4) - self.assertEqual(s['key1'], (1,2,3,4)) - s.close() - - self.assertEqual(len(d1), 1) - self.assertNotEqual(d1, d2) - - def test_mutable_entry(self): - d1 = {} - s = shelve.Shelf(d1, protocol=2, writeback=False) - s['key1'] = [1,2,3,4] - self.assertEqual(s['key1'], [1,2,3,4]) - s['key1'].append(5) - self.assertEqual(s['key1'], [1,2,3,4]) - s.close() - - d2 = {} - s = shelve.Shelf(d2, protocol=2, writeback=True) - s['key1'] = [1,2,3,4] - self.assertEqual(s['key1'], [1,2,3,4]) - s['key1'].append(5) - self.assertEqual(s['key1'], [1,2,3,4,5]) - s.close() - - self.assertEqual(len(d1), 1) - self.assertEqual(len(d2), 1) - - def test_writeback_also_writes_immediately(self): - # Issue 5754 - d = {} - s = shelve.Shelf(d, writeback=True) - s['key'] = [1] - p1 = d['key'] # Will give a KeyError if backing store not updated - s['key'].append(2) - s.close() - p2 = d['key'] - self.assertNotEqual(p1, p2) # Write creates new object in store - - -from test import mapping_tests - -class TestShelveBase(mapping_tests.BasicTestMappingProtocol): - fn = "shelftemp.db" - counter = 0 - def __init__(self, *args, **kw): - self._db = [] - mapping_tests.BasicTestMappingProtocol.__init__(self, *args, **kw) - type2test = shelve.Shelf - def _reference(self): - return {"key1":"value1", "key2":2, "key3":(1,2,3)} - def _empty_mapping(self): - if self._in_mem: - x= shelve.Shelf({}, **self._args) - else: - self.counter+=1 - x= shelve.open(self.fn+str(self.counter), **self._args) - self._db.append(x) - return x - def tearDown(self): - for db in self._db: - db.close() - self._db = [] - if not self._in_mem: - for f in glob.glob(self.fn+"*"): - test_support.unlink(f) - -class TestAsciiFileShelve(TestShelveBase): - _args={'protocol':0} - _in_mem = False -class TestBinaryFileShelve(TestShelveBase): - _args={'protocol':1} - _in_mem = False -class TestProto2FileShelve(TestShelveBase): - _args={'protocol':2} - _in_mem = False -class TestAsciiMemShelve(TestShelveBase): - _args={'protocol':0} - _in_mem = True -class TestBinaryMemShelve(TestShelveBase): - _args={'protocol':1} - _in_mem = True -class TestProto2MemShelve(TestShelveBase): - _args={'protocol':2} - _in_mem = True - -def test_main(): - test_support.run_unittest( - TestAsciiFileShelve, - TestBinaryFileShelve, - TestProto2FileShelve, - TestAsciiMemShelve, - TestBinaryMemShelve, - TestProto2MemShelve, - TestCase - ) - -if __name__ == "__main__": - test_main() |