Fix the bsddb3 unit tests.

This essentially meant fixing one case where a list of custom objects
was being sorted, and fixing one genuine bug where a method call was
missing parentheses.
This commit is contained in:
Guido van Rossum 2006-08-24 18:19:44 +00:00
parent 19960597ad
commit e4ef3a6e6c
2 changed files with 19 additions and 7 deletions

View File

@ -697,7 +697,7 @@ class BasicTransactionTestCase(BasicTestCase):
for log in logs:
if verbose:
print 'log file: ' + log
if db.version >= (4,2):
if db.version() >= (4,2):
logs = self.env.log_archive(db.DB_ARCH_REMOVE)
assert not logs

View File

@ -23,11 +23,24 @@ from .test_all import verbose
# We want the objects to be comparable so we can test dbshelve.values
# later on.
class DataClass:
def __init__(self):
self.value = random.random()
def __cmp__(self, other):
return cmp(self.value, other)
def __repr__(self):
return "DataClass(%r)" % self.value
def __eq__(self, other):
value = self.value
if isinstance(other, DataClass):
other = other.value
return value == other
def __lt__(self, other):
value = self.value
if isinstance(other, DataClass):
other = other.value
return value < other
class DBShelveTestCase(unittest.TestCase):
def setUp(self):
@ -103,11 +116,10 @@ class DBShelveTestCase(unittest.TestCase):
print "%s: %s" % (key, value)
self.checkrec(key, value)
dbvalues = d.values()
dbvalues = sorted(d.values(), key=lambda x: (str(type(x)), x))
assert len(dbvalues) == len(d.keys())
values.sort()
dbvalues.sort()
assert values == dbvalues
values.sort(key=lambda x: (str(type(x)), x))
assert values == dbvalues, "%r != %r" % (values, dbvalues)
items = d.items()
assert len(items) == len(values)