Fixed to the point that all unit tests pass again. (However, I get 4
"exception in thread" messages, one about a killed locker, and three
assertions.) Details:
test/test_dbshelve.py:
- kill reference to InstanceType
test/test_basics.py:
- use // for int division
- use 'in' instead of has_key
dbshelve.py:
- fix bug in previous has_key fix, use self.db.has_key instead of self.has_key
dbtables.py:
- use 'in' instead of has_key
dbutils.py:
- fix bug in previous has_key fix, test for 'max_retries', not 'max_tries'
diff --git a/Lib/bsddb/dbshelve.py b/Lib/bsddb/dbshelve.py
index afc1a1a..8530c9a 100644
--- a/Lib/bsddb/dbshelve.py
+++ b/Lib/bsddb/dbshelve.py
@@ -198,7 +198,7 @@
def __contains__(self, key):
- return self.has_key(key)
+ return self.db.has_key(key)
#----------------------------------------------
diff --git a/Lib/bsddb/dbtables.py b/Lib/bsddb/dbtables.py
index 492d5fd..655fb96 100644
--- a/Lib/bsddb/dbtables.py
+++ b/Lib/bsddb/dbtables.py
@@ -323,7 +323,7 @@
# column names
newcolumnlist = copy.copy(oldcolumnlist)
for c in columns:
- if not oldcolumnhash.has_key(c):
+ if c not in oldcolumnhash:
newcolumnlist.append(c)
# store the table's new extended column list
@@ -389,7 +389,7 @@
raise TableDBError, "unknown table"
# check the validity of each column name
- if not self.__tablecolumns.has_key(table):
+ if table not in self.__tablecolumns:
self.__load_column_info(table)
for column in rowdict.keys() :
if not self.__tablecolumns[table].count(column):
@@ -521,7 +521,7 @@
argument and returning a boolean.
"""
try:
- if not self.__tablecolumns.has_key(table):
+ if table not in self.__tablecolumns:
self.__load_column_info(table)
if columns is None:
columns = self.__tablecolumns[table]
@@ -542,7 +542,7 @@
argument and returning a boolean.
"""
# check the validity of each column name
- if not self.__tablecolumns.has_key(table):
+ if table not in self.__tablecolumns:
self.__load_column_info(table)
if columns is None:
columns = self.tablecolumns[table]
@@ -601,16 +601,16 @@
# extract the rowid from the key
rowid = key[-_rowid_str_len:]
- if not rejected_rowids.has_key(rowid):
+ if rowid not in rejected_rowids:
# if no condition was specified or the condition
# succeeds, add row to our match list.
if not condition or condition(data):
- if not matching_rowids.has_key(rowid):
+ if rowid not in matching_rowids:
matching_rowids[rowid] = {}
if savethiscolumndata:
matching_rowids[rowid][column] = data
else:
- if matching_rowids.has_key(rowid):
+ if rowid in matching_rowids:
del matching_rowids[rowid]
rejected_rowids[rowid] = rowid
@@ -631,7 +631,7 @@
if len(columns) > 0:
for rowid, rowdata in matching_rowids.items():
for column in columns:
- if rowdata.has_key(column):
+ if column in rowdata:
continue
try:
rowdata[column] = self.db.get(
@@ -697,7 +697,7 @@
txn.commit()
txn = None
- if self.__tablecolumns.has_key(table):
+ if table in self.__tablecolumns:
del self.__tablecolumns[table]
except DBError, dberror:
diff --git a/Lib/bsddb/dbutils.py b/Lib/bsddb/dbutils.py
index 0c4c1cb..daec873 100644
--- a/Lib/bsddb/dbutils.py
+++ b/Lib/bsddb/dbutils.py
@@ -55,7 +55,7 @@
"""
sleeptime = _deadlock_MinSleepTime
max_retries = _kwargs.get('max_retries', -1)
- if 'max_tries' in _kwargs:
+ if 'max_retries' in _kwargs:
del _kwargs['max_retries']
while True:
try:
diff --git a/Lib/bsddb/test/test_basics.py b/Lib/bsddb/test/test_basics.py
index f7f4c2d..7e6ba52 100644
--- a/Lib/bsddb/test/test_basics.py
+++ b/Lib/bsddb/test/test_basics.py
@@ -114,14 +114,14 @@
def populateDB(self, _txn=None):
d = self.d
- for x in range(self._numKeys/2):
+ for x in range(self._numKeys//2):
key = '%04d' % (self._numKeys - x) # insert keys in reverse order
data = self.makeData(key)
d.put(key, data, _txn)
d.put('empty value', '', _txn)
- for x in range(self._numKeys/2-1):
+ for x in range(self._numKeys//2-1):
key = '%04d' % x # and now some in forward order
data = self.makeData(key)
d.put(key, data, _txn)
@@ -686,10 +686,10 @@
if db.version() >= (4,0):
statDict = self.env.log_stat(0);
- assert statDict.has_key('magic')
- assert statDict.has_key('version')
- assert statDict.has_key('cur_file')
- assert statDict.has_key('region_nowait')
+ assert 'magic' in statDict
+ assert 'version' in statDict
+ assert 'cur_file' in statDict
+ assert 'region_nowait' in statDict
# must have at least one log file present:
logs = self.env.log_archive(db.DB_ARCH_ABS | db.DB_ARCH_LOG)
diff --git a/Lib/bsddb/test/test_dbshelve.py b/Lib/bsddb/test/test_dbshelve.py
index bb85bf7..002bda9 100644
--- a/Lib/bsddb/test/test_dbshelve.py
+++ b/Lib/bsddb/test/test_dbshelve.py
@@ -187,7 +187,6 @@
assert value == [x] * 10
elif key[0] == 'O':
- assert type(value) == InstanceType
assert value.S == 10 * x
assert value.I == ord(x)
assert value.L == [x] * 10