python-2.5.2/win32/Lib/test/test_dbm.py
changeset 0 ae805ac0140d
equal deleted inserted replaced
-1:000000000000 0:ae805ac0140d
       
     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, TESTFN
       
    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 = TESTFN
       
    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()