Merged revisions 78141-78142 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r78141 | r.david.murray | 2010-02-10 20:38:42 -0500 (Wed, 10 Feb 2010) | 6 lines

  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.
........
  r78142 | r.david.murray | 2010-02-10 20:56:42 -0500 (Wed, 10 Feb 2010) | 3 lines

  Improve issue 7835 fix per MAL to handle the case that the
  module dictionary has also been cleared.
........
diff --git a/Lib/test/test_shelve.py b/Lib/test/test_shelve.py
index 9699043..066208a 100644
--- a/Lib/test/test_shelve.py
+++ b/Lib/test/test_shelve.py
@@ -122,6 +122,19 @@
         self.assertEqual(len(d1), 1)
         self.assertEqual(len(d2), 1)
 
+    def test_writeback_also_writes_immediately(self):
+        # Issue 5754
+        d = {}
+        key = 'key'
+        encodedkey = key.encode('utf-8')
+        s = shelve.Shelf(d, writeback=True)
+        s[key] = [1]
+        p1 = d[encodedkey]  # Will give a KeyError if backing store not updated
+        s['key'].append(2)
+        s.close()
+        p2 = d[encodedkey]
+        self.assertNotEqual(p1, p2)  # Write creates new object in store
+
 
 from test import mapping_tests