Issue 5754: tweak shelve doc wording to make it clearer that even when
writeback=True values are written to the backing store when assigned to
the shelf. Add test to confirm that this happens. Doc patch and added
test by Robert Lehmann. I also fixed the cross references to the sync
and close methods.
diff --git a/Lib/test/test_shelve.py b/Lib/test/test_shelve.py
index 3b20281..df56625 100644
--- a/Lib/test/test_shelve.py
+++ b/Lib/test/test_shelve.py
@@ -90,6 +90,17 @@
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