Mercurial > cpython-lru_cache-weakref
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 |
| 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 |
