The 0.5 release happened on 2/15, not on 2/14. :-)
[python/dscho.git] / Lib / dos-8x3 / test_bsd.py
blobe5780ea80433b5a9fcbd99d6c0ca4d87e1bdf7c1
1 #! /usr/bin/env python
2 """Test script for the bsddb C module
3 Roger E. Masse
4 """
6 import os
7 import bsddb
8 import tempfile
9 from test_support import verbose
11 def test(openmethod, what):
13 if verbose:
14 print '\nTesting: ', what
16 fname = tempfile.mktemp()
17 f = openmethod(fname, 'c')
18 if verbose:
19 print 'creation...'
20 f['0'] = ''
21 f['a'] = 'Guido'
22 f['b'] = 'van'
23 f['c'] = 'Rossum'
24 f['d'] = 'invented'
25 f['f'] = 'Python'
26 if verbose:
27 print '%s %s %s' % (f['a'], f['b'], f['c'])
29 if what == 'BTree' :
30 if verbose:
31 print 'key ordering...'
32 f.set_location(f.first()[0])
33 while 1:
34 try:
35 rec = f.next()
36 except KeyError:
37 if rec <> f.last():
38 print 'Error, last <> last!'
39 f.previous()
40 break
41 if verbose:
42 print rec
43 if not f.has_key('a'):
44 print 'Error, missing key!'
46 f.sync()
47 f.close()
48 if verbose:
49 print 'modification...'
50 f = openmethod(fname, 'w')
51 f['d'] = 'discovered'
53 if verbose:
54 print 'access...'
55 for key in f.keys():
56 word = f[key]
57 if verbose:
58 print word
60 f.close()
61 try:
62 os.remove(fname)
63 except os.error:
64 pass
66 types = [(bsddb.btopen, 'BTree'),
67 (bsddb.hashopen, 'Hash Table'),
68 # (bsddb.rnopen,'Record Numbers'), 'put' for RECNO for bsddb 1.85
69 # appears broken... at least on
70 # Solaris Intel - rmasse 1/97
73 for type in types:
74 test(type[0], type[1])