summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAmaury Forgeot d'Arc <amauryfa@gmail.com>2008-09-25 22:27:43 (GMT)
committerAmaury Forgeot d'Arc <amauryfa@gmail.com>2008-09-25 22:27:43 (GMT)
commitb5cf301b8e7e23ed5fddc369d24c856e48e9b27b (patch)
treec9a7a91316d8e4a575ac8f380461954d9925b1dc
parent7de5f2997266befa489af273f35703f3828dca24 (diff)
downloadcpython-b5cf301b8e7e23ed5fddc369d24c856e48e9b27b.zip
cpython-b5cf301b8e7e23ed5fddc369d24c856e48e9b27b.tar.gz
cpython-b5cf301b8e7e23ed5fddc369d24c856e48e9b27b.tar.bz2
#3929: dbm.open() would try to raise a tuple. This does not work anymore with python 3.0.
Reviewed by Georg Brandl.
-rw-r--r--Lib/dbm/__init__.py8
-rw-r--r--Lib/test/test_dbm.py3
-rw-r--r--Misc/NEWS4
3 files changed, 11 insertions, 4 deletions
diff --git a/Lib/dbm/__init__.py b/Lib/dbm/__init__.py
index 2082e07..19a7072 100644
--- a/Lib/dbm/__init__.py
+++ b/Lib/dbm/__init__.py
@@ -76,13 +76,13 @@ def open(file, flag = 'r', mode = 0o666):
# file doesn't exist and the new flag was used so use default type
mod = _defaultmod
else:
- raise error("need 'c' or 'n' flag to open new db")
+ raise error[0]("need 'c' or 'n' flag to open new db")
elif result == "":
# db type cannot be determined
- raise error("db type could not be determined")
+ raise error[0]("db type could not be determined")
elif result not in _modules:
- raise error("db type is {0}, but the module is not "
- "available".format(result))
+ raise error[0]("db type is {0}, but the module is not "
+ "available".format(result))
else:
mod = _modules[result]
return mod.open(file, flag, mode)
diff --git a/Lib/test/test_dbm.py b/Lib/test/test_dbm.py
index 41c37cb..ee82dd2 100644
--- a/Lib/test/test_dbm.py
+++ b/Lib/test/test_dbm.py
@@ -57,6 +57,9 @@ class AnyDBMTestCase(unittest.TestCase):
def test_error(self):
self.assert_(issubclass(self.module.error, IOError))
+ def test_anydbm_not_existing(self):
+ self.assertRaises(dbm.error, dbm.open, _fname)
+
def test_anydbm_creation(self):
f = dbm.open(_fname, 'c')
self.assertEqual(list(f.keys()), [])
diff --git a/Misc/NEWS b/Misc/NEWS
index c1ab3d3..36240ed 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -20,6 +20,10 @@ Core and Builtins
Library
-------
+- Issue #3929: When the database cannot be opened, dbm.open() would incorrectly
+ raise a TypeError: "'tuple' object is not callable" instead of the expected
+ dbm.error.
+
- Bug #3884: Make the turtle module toplevel again.
- Issue #3547: Fixed ctypes structures bitfields of varying integer