| #! /usr/bin/env python | 
 | """Test script for the bsddb C module | 
 |    Roger E. Masse | 
 | """ | 
 | import bsddb | 
 | import tempfile | 
 | from test_support import verbose | 
 |  | 
 | def test(openmethod, what): | 
 |  | 
 |     if verbose: | 
 | 	print '\nTesting: ', what | 
 | 	 | 
 |     fname = tempfile.mktemp() | 
 |     f = openmethod(fname, 'c') | 
 |     if verbose: | 
 | 	print 'creation...' | 
 |     f['0'] = '' | 
 |     f['a'] = 'Guido' | 
 |     f['b'] = 'van' | 
 |     f['c'] = 'Rossum' | 
 |     f['d'] = 'invented' | 
 |     f['f'] = 'Python' | 
 |     if verbose: | 
 | 	print '%s %s %s' % (f['a'], f['b'], f['c']) | 
 |  | 
 |     if what == 'BTree' : | 
 | 	if verbose: | 
 | 	    print 'key ordering...' | 
 | 	f.set_location(f.first()[0]) | 
 | 	while 1: | 
 | 	    try: | 
 | 		rec = f.next() | 
 | 	    except KeyError: | 
 | 		if rec <> f.last(): | 
 | 		    print 'Error, last <> last!' | 
 | 		f.previous() | 
 | 		break | 
 | 	    if verbose: | 
 | 		print rec | 
 | 	if not f.has_key('a'): | 
 | 	    print 'Error, missing key!' | 
 |  | 
 |     f.sync() | 
 |     f.close() | 
 |     if verbose: | 
 | 	print 'modification...' | 
 |     f = openmethod(fname, 'w') | 
 |     f['d'] = 'discovered' | 
 |  | 
 |     if verbose: | 
 | 	print 'access...' | 
 |     for key in f.keys(): | 
 | 	word = f[key] | 
 | 	if verbose: | 
 | 	    print word | 
 |  | 
 |     f.close() | 
 |  | 
 | types = [(bsddb.btopen, 'BTree'), | 
 | 	 (bsddb.hashopen, 'Hash Table'), | 
 | 	 # (bsddb.rnopen,'Record Numbers'), 'put' for RECNO for bsddb 1.85 | 
 |          #                                   appears broken... at least on | 
 | 	 #                                   Solaris Intel - rmasse 1/97 | 
 | 	 ] | 
 |  | 
 | for type in types: | 
 |     test(type[0], type[1]) | 
 |  |