summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Lib/bsddb/__init__.py7
-rw-r--r--Lib/bsddb/test/test_misc.py10
2 files changed, 11 insertions, 6 deletions
diff --git a/Lib/bsddb/__init__.py b/Lib/bsddb/__init__.py
index 781a22b..4903584 100644
--- a/Lib/bsddb/__init__.py
+++ b/Lib/bsddb/__init__.py
@@ -111,11 +111,10 @@ class _iter_mixin(UserDict.DictMixin):
return
def iteritems(self):
+ if not self.db:
+ return
try:
- try:
- cur = self._make_iter_cursor()
- except AttributeError:
- return
+ cur = self._make_iter_cursor()
# FIXME-20031102-greg: race condition. cursor could
# be closed by another thread before this call.
diff --git a/Lib/bsddb/test/test_misc.py b/Lib/bsddb/test/test_misc.py
index a66b1de..88f700b 100644
--- a/Lib/bsddb/test/test_misc.py
+++ b/Lib/bsddb/test/test_misc.py
@@ -7,10 +7,10 @@ import unittest
try:
# For Pythons w/distutils pybsddb
- from bsddb3 import db, dbshelve
+ from bsddb3 import db, dbshelve, hashopen
except ImportError:
# For Python 2.3
- from bsddb import db, dbshelve
+ from bsddb import db, dbshelve, hashopen
#----------------------------------------------------------------------
@@ -46,6 +46,12 @@ class MiscTestCase(unittest.TestCase):
env.open(self.homeDir, db.DB_CREATE)
assert self.homeDir == env.db_home
+ def test03_repr_closed_db(self):
+ db = hashopen(self.filename)
+ db.close()
+ rp = repr(db)
+ self.assertEquals(rp, "{}")
+
#----------------------------------------------------------------------