Merged revisions 66809-66810,66835,66862-66863 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r66809 | hirokazu.yamamoto | 2008-10-06 10:57:03 +0900 | 1 line

  Added the test for issue3762.
........
  r66810 | hirokazu.yamamoto | 2008-10-06 11:41:59 +0900 | 1 line

  More strict test. Consider the case sys.executable itself is symlink.
........
  r66835 | hirokazu.yamamoto | 2008-10-08 03:10:47 +0900 | 1 line

  more intensive test on dbm.
........
  r66862 | hirokazu.yamamoto | 2008-10-09 19:00:30 +0900 | 3 lines

  On windows, os.chdir given unicode was not working if GetCurrentDirectoryW
  returned a path longer than MAX_PATH. (But It's doubtful this code path is
  really executed because I cannot move to such directory on win2k)
........
  r66863 | hirokazu.yamamoto | 2008-10-09 19:11:21 +0900 | 1 line

  r66862 contained memory leak.
........
diff --git a/Lib/test/test_dbm.py b/Lib/test/test_dbm.py
index 562b14f..0541f86 100755
--- a/Lib/test/test_dbm.py
+++ b/Lib/test/test_dbm.py
@@ -1,9 +1,6 @@
 from test import test_support
 import unittest
-import os
-import random
 import dbm
-from dbm import error
 
 class DbmTestCase(unittest.TestCase):
 
@@ -18,11 +15,16 @@
 
     def test_keys(self):
         self.d = dbm.open(self.filename, 'c')
-        self.assert_(self.d.keys() == [])
-        self.d['a'] = 'b'
-        self.d['12345678910'] = '019237410982340912840198242'
-        self.d.keys()
-        self.assert_(self.d.has_key('a'))
+        self.assertEqual(self.d.keys(), [])
+        a = [('a', 'b'), ('12345678910', '019237410982340912840198242')]
+        for k, v in a:
+            self.d[k] = v
+        self.assertEqual(sorted(self.d.keys()), sorted(k for (k, v) in a))
+        for k, v in a:
+            self.assert_(k in self.d)
+            self.assertEqual(self.d[k], v)
+        self.assert_('xxx' not in self.d)
+        self.assertRaises(KeyError, lambda: self.d['xxx'])
         self.d.close()
 
     def test_modes(self):