equal
deleted
inserted
replaced
|
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() |