mirror of
https://github.com/python/cpython.git
synced 2024-11-28 12:31:14 +08:00
e7629c85bc
Cleanup (remove) the file(s) after we are done with the test. (Fixes problem on snake farm)
56 lines
1.3 KiB
Python
Executable File
56 lines
1.3 KiB
Python
Executable File
#! /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
|
|
|
|
# make filename unique to allow multiple concurrent tests
|
|
# and to minimize the likelihood of a problem from an old file
|
|
filename = '/tmp/delete_me_' + str(random.random())[-6:]
|
|
|
|
def cleanup():
|
|
for suffix in ['', '.pag', '.dir', '.db']:
|
|
try:
|
|
os.unlink(filename + suffix)
|
|
except OSError, (errno, strerror):
|
|
# 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 d.has_key('a'):
|
|
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()
|