#! /usr/bin/env python
"""Test script for the dbm module
   Roger E. Masse
"""
import dbm
from dbm import error
from test_support import verbose, verify

filename = '/tmp/delete_me'

d = dbm.open(filename, 'c')
verify(d.keys() == [])
d['a'] = 'b'
d['12345678910'] = '019237410982340912840198242'
d.keys()
if d.has_key('a'):
    if verbose:
        print 'Test dbm keys: ', d.keys()

d.close()
d = dbm.open(filename, 'r')
d.close()
d = dbm.open(filename, 'rw')
d.close()
d = dbm.open(filename, 'w')
d.close()
d = dbm.open(filename, 'n')
d.close()

try:
    import os
    if dbm.library == "ndbm":
        # classic dbm
        os.unlink(filename + '.dir')
        os.unlink(filename + '.pag')
    elif dbm.library == "BSD db":
        # BSD DB's compatibility layer
        os.unlink(filename + '.db')
    else:
        # GNU gdbm compatibility layer
        os.unlink(filename)
except:
    pass
