[Python-checkins] python/dist/src/Lib/bsddb/test test_basics.py, 1.7, 1.7.6.1 test_compat.py, 1.5, 1.5.6.1

Update of /cvsroot/python/python/dist/src/Lib/bsddb/test In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21983/Lib/bsddb/test Modified Files: Tag: release23-maint test_basics.py test_compat.py Log Message: Fixes SF bsddb module bug 788421: * Fixed a bug in the compatibility interface set_location() method where it would not properly search to the next nearest key when used on BTree databases. [SF bug id 788421] * Fixed a bug in the compatibility interface set_location() method where it could crash when looking up keys in a hash or recno format database due to an incorrect free(). Index: test_basics.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/bsddb/test/test_basics.py,v retrieving revision 1.7 retrieving revision 1.7.6.1 diff -C2 -d -r1.7 -r1.7.6.1 *** test_basics.py 9 Jul 2003 04:45:59 -0000 1.7 --- test_basics.py 26 Feb 2004 10:21:13 -0000 1.7.6.1 *************** *** 371,375 **** if verbose: print "searched (partial) for '011', found: ", rec ! if rec[1] != '': set.fail('expected empty data portion') c.set('0499') --- 371,380 ---- if verbose: print "searched (partial) for '011', found: ", rec ! if rec[1] != '': self.fail('expected empty data portion') ! ! ev = c.set_range('empty value') ! if verbose: ! print "search for 'empty value' returned", ev ! if ev[1] != '': self.fail('empty value lookup failed') c.set('0499') Index: test_compat.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/bsddb/test/test_compat.py,v retrieving revision 1.5 retrieving revision 1.5.6.1 diff -C2 -d -r1.5 -r1.5.6.1 *** test_compat.py 9 Jul 2003 05:29:24 -0000 1.5 --- test_compat.py 26 Feb 2004 10:21:13 -0000 1.5.6.1 *************** *** 50,53 **** --- 50,57 ---- assert getTest[1] == 'quick', 'data mismatch!' + rv = f.set_location(3) + if rv != (3, 'brown'): + self.fail('recno database set_location failed: '+repr(rv)) + f[25] = 'twenty-five' f.close() *************** *** 84,88 **** - def do_bthash_test(self, factory, what): if verbose: --- 88,91 ---- *************** *** 104,107 **** --- 107,111 ---- f['c'] = 'Rossum' f['d'] = 'invented' + # 'e' intentionally left out f['f'] = 'Python' if verbose: *************** *** 110,114 **** if verbose: print 'key ordering...' ! f.set_location(f.first()[0]) while 1: try: --- 114,120 ---- if verbose: print 'key ordering...' ! start = f.set_location(f.first()[0]) ! if start != ('0', ''): ! self.fail("incorrect first() result: "+repr(start)) while 1: try: *************** *** 123,126 **** --- 129,146 ---- assert f.has_key('f'), 'Error, missing key!' + # test that set_location() returns the next nearest key, value + # on btree databases and raises KeyError on others. + if factory == btopen: + e = f.set_location('e') + if e != ('f', 'Python'): + self.fail('wrong key,value returned: '+repr(e)) + else: + try: + e = f.set_location('e') + except KeyError: + pass + else: + self.fail("set_location on non-existant key did not raise KeyError") + f.sync() f.close()
participants (1)
-
gregļ¼ users.sourceforge.net