home *** CD-ROM | disk | FTP | other *** search
/ Enter 2003: The Beautiful Scenery / enter-parhaat-2003.iso / files / Python-2.2.1.exe / TEST_DUMBDBM.PY < prev    next >
Encoding:
Python Source  |  2002-03-17  |  1.9 KB  |  80 lines

  1. #! /usr/bin/env python
  2. """Test script for the dumbdbm module
  3.    Original by Roger E. Masse
  4. """
  5.  
  6. import os
  7. import test_support
  8. import unittest
  9. import dumbdbm
  10. import tempfile
  11.  
  12. _fname = tempfile.mktemp()
  13.  
  14. def _delete_files():
  15.     for ext in [".dir", ".dat", ".bak"]:
  16.         try:
  17.             os.unlink(_fname + ext)
  18.         except OSError:
  19.             pass
  20.  
  21. class DumbDBMTestCase(unittest.TestCase):
  22.     _dict = {'0': '',
  23.              'a': 'Python:',
  24.              'b': 'Programming',
  25.              'c': 'the',
  26.              'd': 'way',
  27.              'f': 'Guido',
  28.              'g': 'intended'
  29.              }
  30.  
  31.     def __init__(self, *args):
  32.         unittest.TestCase.__init__(self, *args)
  33.         self._dkeys = self._dict.keys()
  34.         self._dkeys.sort()
  35.  
  36.     def test_dumbdbm_creation(self):
  37.         _delete_files()
  38.         f = dumbdbm.open(_fname, 'c')
  39.         self.assertEqual(f.keys(), [])
  40.         for key in self._dict:
  41.             f[key] = self._dict[key]
  42.         self.read_helper(f)
  43.         f.close()
  44.  
  45.     def test_dumbdbm_modification(self):
  46.         f = dumbdbm.open(_fname, 'w')
  47.         self._dict['g'] = f['g'] = "indented"
  48.         self.read_helper(f)
  49.         f.close()
  50.  
  51.     def test_dumbdbm_read(self):
  52.         f = dumbdbm.open(_fname, 'r')
  53.         self.read_helper(f)
  54.         f.close()
  55.  
  56.     def test_dumbdbm_keys(self):
  57.         f = dumbdbm.open(_fname)
  58.         keys = self.keys_helper(f)
  59.         f.close()
  60.  
  61.     def read_helper(self, f):
  62.         keys = self.keys_helper(f)
  63.         for key in self._dict:
  64.             self.assertEqual(self._dict[key], f[key])
  65.  
  66.     def keys_helper(self, f):
  67.         keys = f.keys()
  68.         keys.sort()
  69.         self.assertEqual(keys, self._dkeys)
  70.         return keys
  71.  
  72. def test_main():
  73.     try:
  74.         test_support.run_unittest(DumbDBMTestCase)
  75.     finally:
  76.         _delete_files()
  77.  
  78. if __name__ == "__main__":
  79.     test_main()
  80.