summaryrefslogtreecommitdiff
path: root/lib/python2.7/test/test_shelve.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/python2.7/test/test_shelve.py')
-rw-r--r--lib/python2.7/test/test_shelve.py163
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()