#! /usr/bin/env python """Test script for the dbm module Roger E. Masse """ import os import random import dbm from dbm import error from test.test_support import verbose, verify, TestSkipped, TESTFN # make filename unique to allow multiple concurrent tests # and to minimize the likelihood of a problem from an old file filename = TESTFN def cleanup(): for suffix in ['', '.pag', '.dir', '.db']: try: os.unlink(filename + suffix) except OSError as e: (errno, strerror) = e # if we can't delete the file because of permissions, # nothing will work, so skip the test if errno == 1: raise TestSkipped, 'unable to remove: ' + filename + suffix def test_keys(): d = dbm.open(filename, 'c') verify(d.keys() == []) d['a'] = 'b' d['12345678910'] = '019237410982340912840198242' d.keys() if 'a' in d: if verbose: print('Test dbm keys: ', d.keys()) d.close() def test_modes(): 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() cleanup() try: test_keys() test_modes() except: cleanup() raise cleanup()