summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Doc/library/bsddb.rst3
-rw-r--r--Lib/test/test_bsddb185.py4
-rw-r--r--Lib/test/test_py3kwarn.py6
-rw-r--r--Misc/NEWS2
-rw-r--r--Modules/bsddbmodule.c4
5 files changed, 16 insertions, 3 deletions
diff --git a/Doc/library/bsddb.rst b/Doc/library/bsddb.rst
index 5a8d3799cf..1905c14daf 100644
--- a/Doc/library/bsddb.rst
+++ b/Doc/library/bsddb.rst
@@ -82,7 +82,8 @@ arguments should be used in most instances.
Beginning in 2.3 some Unix versions of Python may have a :mod:`bsddb185` module.
This is present *only* to allow backwards compatibility with systems which ship
with the old Berkeley DB 1.85 database library. The :mod:`bsddb185` module
- should never be used directly in new code.
+ should never be used directly in new code. The module has been removed in
+ Python 3.0.
.. seealso::
diff --git a/Lib/test/test_bsddb185.py b/Lib/test/test_bsddb185.py
index 51e1a7eb8d..98102c1457 100644
--- a/Lib/test/test_bsddb185.py
+++ b/Lib/test/test_bsddb185.py
@@ -4,9 +4,9 @@ The file 185test.db found in Lib/test/ is for testing purposes with this
testing suite.
"""
-from test.test_support import run_unittest, findfile
+from test.test_support import run_unittest, findfile, import_module
import unittest
-import bsddb185
+bsddb185 = import_module('bsddb185', deprecated=True)
import anydbm
import whichdb
import os
diff --git a/Lib/test/test_py3kwarn.py b/Lib/test/test_py3kwarn.py
index 22257e1d1e..ae5713476e 100644
--- a/Lib/test/test_py3kwarn.py
+++ b/Lib/test/test_py3kwarn.py
@@ -131,6 +131,7 @@ class TestStdlibRemovals(unittest.TestCase):
all_platforms = ('audiodev', 'imputil', 'mutex', 'user', 'new', 'rexec',
'Bastion')
inclusive_platforms = {'irix':('pure',)}
+ optional_modules = ('bsddb185',)
def check_removal(self, module_name, optional=False):
"""Make sure the specified module, when imported, raises a
@@ -169,6 +170,11 @@ class TestStdlibRemovals(unittest.TestCase):
for module_name in self.inclusive_platforms.get(sys.platform, []):
self.check_removal(module_name, optional=True)
+ def test_optional_module_removals(self):
+ # Test the removal of modules that may or may not be built.
+ for module_name in self.optional_modules:
+ self.check_removal(module_name, optional=True)
+
def test_os_path_walk(self):
msg = "In 3.x, os.path.walk is removed in favor of os.walk."
def dumbo(where, names, args): pass
diff --git a/Misc/NEWS b/Misc/NEWS
index 41d3fe5bd8..11294bd8cb 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -23,6 +23,8 @@ Extension Modules
Library
-------
+- The bsddb185 module has been deprecated for removal in Python 3.0.
+
- The pure module has been deprecated for removal in Python 3.0.
- Issue #2487: change the semantics of math.ldexp(x, n) when n is too
diff --git a/Modules/bsddbmodule.c b/Modules/bsddbmodule.c
index 61c656437e..09728821e3 100644
--- a/Modules/bsddbmodule.c
+++ b/Modules/bsddbmodule.c
@@ -847,6 +847,10 @@ PyMODINIT_FUNC
initbsddb185(void) {
PyObject *m, *d;
+ if (PyErr_WarnPy3k("the bsddb185 module has been removed in "
+ "Python 3.0", 2) < 0)
+ return;
+
Bsddbtype.ob_type = &PyType_Type;
m = Py_InitModule("bsddb185", bsddbmodule_methods);
if (m == NULL)