annotate Lib/test/test_bsddb.py @ 5817:48b94de85bf3 legacy-trunk

Extensive changes by AMK.
author Guido van Rossum <guido@python.org>
date Thu, 17 Jul 1997 16:29:42 +0000
parents 9b1694390820
children aedd2d0dcb31
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4977
9b1694390820 Test script for the bsddb C extension module.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
diff changeset
1 #! /usr/bin/env python
9b1694390820 Test script for the bsddb C extension module.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
diff changeset
2 """Test script for the bsddb C module
9b1694390820 Test script for the bsddb C extension module.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
diff changeset
3 Roger E. Masse
9b1694390820 Test script for the bsddb C extension module.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
diff changeset
4 """
9b1694390820 Test script for the bsddb C extension module.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
diff changeset
5 import bsddb
9b1694390820 Test script for the bsddb C extension module.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
diff changeset
6 import tempfile
9b1694390820 Test script for the bsddb C extension module.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
diff changeset
7 from test_support import verbose
9b1694390820 Test script for the bsddb C extension module.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
diff changeset
8
9b1694390820 Test script for the bsddb C extension module.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
diff changeset
9 def test(openmethod, what):
9b1694390820 Test script for the bsddb C extension module.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
diff changeset
10
9b1694390820 Test script for the bsddb C extension module.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
diff changeset
11 if verbose:
9b1694390820 Test script for the bsddb C extension module.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
diff changeset
12 print '\nTesting: ', what
9b1694390820 Test script for the bsddb C extension module.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
diff changeset
13
9b1694390820 Test script for the bsddb C extension module.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
diff changeset
14 fname = tempfile.mktemp()
9b1694390820 Test script for the bsddb C extension module.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
diff changeset
15 f = openmethod(fname, 'c')
9b1694390820 Test script for the bsddb C extension module.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
diff changeset
16 if verbose:
9b1694390820 Test script for the bsddb C extension module.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
diff changeset
17 print 'creation...'
9b1694390820 Test script for the bsddb C extension module.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
diff changeset
18 f['0'] = ''
9b1694390820 Test script for the bsddb C extension module.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
diff changeset
19 f['a'] = 'Guido'
9b1694390820 Test script for the bsddb C extension module.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
diff changeset
20 f['b'] = 'van'
9b1694390820 Test script for the bsddb C extension module.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
diff changeset
21 f['c'] = 'Rossum'
9b1694390820 Test script for the bsddb C extension module.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
diff changeset
22 f['d'] = 'invented'
9b1694390820 Test script for the bsddb C extension module.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
diff changeset
23 f['f'] = 'Python'
9b1694390820 Test script for the bsddb C extension module.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
diff changeset
24 if verbose:
9b1694390820 Test script for the bsddb C extension module.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
diff changeset
25 print '%s %s %s' % (f['a'], f['b'], f['c'])
9b1694390820 Test script for the bsddb C extension module.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
diff changeset
26
9b1694390820 Test script for the bsddb C extension module.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
diff changeset
27 if what == 'BTree' :
9b1694390820 Test script for the bsddb C extension module.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
diff changeset
28 if verbose:
9b1694390820 Test script for the bsddb C extension module.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
diff changeset
29 print 'key ordering...'
9b1694390820 Test script for the bsddb C extension module.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
diff changeset
30 f.set_location(f.first()[0])
9b1694390820 Test script for the bsddb C extension module.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
diff changeset
31 while 1:
9b1694390820 Test script for the bsddb C extension module.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
diff changeset
32 try:
9b1694390820 Test script for the bsddb C extension module.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
diff changeset
33 rec = f.next()
9b1694390820 Test script for the bsddb C extension module.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
diff changeset
34 except KeyError:
9b1694390820 Test script for the bsddb C extension module.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
diff changeset
35 if rec <> f.last():
9b1694390820 Test script for the bsddb C extension module.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
diff changeset
36 print 'Error, last <> last!'
9b1694390820 Test script for the bsddb C extension module.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
diff changeset
37 f.previous()
9b1694390820 Test script for the bsddb C extension module.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
diff changeset
38 break
9b1694390820 Test script for the bsddb C extension module.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
diff changeset
39 if verbose:
9b1694390820 Test script for the bsddb C extension module.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
diff changeset
40 print rec
9b1694390820 Test script for the bsddb C extension module.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
diff changeset
41 if not f.has_key('a'):
9b1694390820 Test script for the bsddb C extension module.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
diff changeset
42 print 'Error, missing key!'
9b1694390820 Test script for the bsddb C extension module.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
diff changeset
43
9b1694390820 Test script for the bsddb C extension module.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
diff changeset
44 f.sync()
9b1694390820 Test script for the bsddb C extension module.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
diff changeset
45 f.close()
9b1694390820 Test script for the bsddb C extension module.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
diff changeset
46 if verbose:
9b1694390820 Test script for the bsddb C extension module.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
diff changeset
47 print 'modification...'
9b1694390820 Test script for the bsddb C extension module.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
diff changeset
48 f = openmethod(fname, 'w')
9b1694390820 Test script for the bsddb C extension module.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
diff changeset
49 f['d'] = 'discovered'
9b1694390820 Test script for the bsddb C extension module.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
diff changeset
50
9b1694390820 Test script for the bsddb C extension module.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
diff changeset
51 if verbose:
9b1694390820 Test script for the bsddb C extension module.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
diff changeset
52 print 'access...'
9b1694390820 Test script for the bsddb C extension module.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
diff changeset
53 for key in f.keys():
9b1694390820 Test script for the bsddb C extension module.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
diff changeset
54 word = f[key]
9b1694390820 Test script for the bsddb C extension module.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
diff changeset
55 if verbose:
9b1694390820 Test script for the bsddb C extension module.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
diff changeset
56 print word
9b1694390820 Test script for the bsddb C extension module.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
diff changeset
57
9b1694390820 Test script for the bsddb C extension module.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
diff changeset
58 f.close()
9b1694390820 Test script for the bsddb C extension module.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
diff changeset
59
9b1694390820 Test script for the bsddb C extension module.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
diff changeset
60 types = [(bsddb.btopen, 'BTree'),
9b1694390820 Test script for the bsddb C extension module.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
diff changeset
61 (bsddb.hashopen, 'Hash Table'),
9b1694390820 Test script for the bsddb C extension module.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
diff changeset
62 # (bsddb.rnopen,'Record Numbers'), 'put' for RECNO for bsddb 1.85
9b1694390820 Test script for the bsddb C extension module.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
diff changeset
63 # appears broken... at least on
9b1694390820 Test script for the bsddb C extension module.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
diff changeset
64 # Solaris Intel - rmasse 1/97
9b1694390820 Test script for the bsddb C extension module.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
diff changeset
65 ]
9b1694390820 Test script for the bsddb C extension module.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
diff changeset
66
9b1694390820 Test script for the bsddb C extension module.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
diff changeset
67 for type in types:
9b1694390820 Test script for the bsddb C extension module.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
diff changeset
68 test(type[0], type[1])
9b1694390820 Test script for the bsddb C extension module.
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
diff changeset
69