home *** CD-ROM | disk | FTP | other *** search
/ PC World 2005 June / PCWorld_2005-06_cd.bin / software / vyzkuste / firewally / firewally.exe / framework-2.3.exe / test_dbm.py < prev    next >
Text File  |  2003-12-30  |  1KB  |  56 lines

  1. #! /usr/bin/env python
  2. """Test script for the dbm module
  3.    Roger E. Masse
  4. """
  5. import os
  6. import random
  7. import dbm
  8. from dbm import error
  9. from test.test_support import verbose, verify, TestSkipped
  10.  
  11. # make filename unique to allow multiple concurrent tests
  12. # and to minimize the likelihood of a problem from an old file
  13. filename = '/tmp/delete_me_' + str(random.random())[-6:]
  14.  
  15. def cleanup():
  16.     for suffix in ['', '.pag', '.dir', '.db']:
  17.         try:
  18.             os.unlink(filename + suffix)
  19.         except OSError, (errno, strerror):
  20.             # if we can't delete the file because of permissions,
  21.             # nothing will work, so skip the test
  22.             if errno == 1:
  23.                 raise TestSkipped, 'unable to remove: ' + filename + suffix
  24.  
  25. def test_keys():
  26.     d = dbm.open(filename, 'c')
  27.     verify(d.keys() == [])
  28.     d['a'] = 'b'
  29.     d['12345678910'] = '019237410982340912840198242'
  30.     d.keys()
  31.     if d.has_key('a'):
  32.         if verbose:
  33.             print 'Test dbm keys: ', d.keys()
  34.  
  35.     d.close()
  36.  
  37. def test_modes():
  38.     d = dbm.open(filename, 'r')
  39.     d.close()
  40.     d = dbm.open(filename, 'rw')
  41.     d.close()
  42.     d = dbm.open(filename, 'w')
  43.     d.close()
  44.     d = dbm.open(filename, 'n')
  45.     d.close()
  46.  
  47. cleanup()
  48. try:
  49.     test_keys()
  50.     test_modes()
  51. except:
  52.     cleanup()
  53.     raise
  54.  
  55. cleanup()
  56.