Deprecate the audiodev module for 3.0.

This commit is contained in:
Brett Cannon 2008-05-06 23:23:34 +00:00
parent 79618239d1
commit e5d2cbaeaf
3 changed files with 40 additions and 1 deletions

View File

@ -47,6 +47,8 @@ Multimedia
:mod:`audiodev` :mod:`audiodev`
--- Platform-independent API for playing audio data. --- Platform-independent API for playing audio data.
.. warning:: The :mod:`audiodev` module has been removed in 3.0.
:mod:`linuxaudiodev` :mod:`linuxaudiodev`
--- Play audio data on the Linux audio device. Replaced in Python 2.3 by the --- Play audio data on the Linux audio device. Replaced in Python 2.3 by the
:mod:`ossaudiodev` module. :mod:`ossaudiodev` module.

View File

@ -1,4 +1,7 @@
"""Classes for manipulating audio devices (currently only for Sun and SGI)""" """Classes for manipulating audio devices (currently only for Sun and SGI)"""
from warnings import warnpy3k
warnpy3k("the audiodev module has been removed in Python 3.0", stacklevel=2)
del warnpy3k
__all__ = ["error","AudioDev"] __all__ = ["error","AudioDev"]

View File

@ -124,8 +124,42 @@ class TestPy3KWarnings(unittest.TestCase):
self.assertWarning(buffer('a'), w, expected) self.assertWarning(buffer('a'), w, expected)
class TestStdlibRemovals(unittest.TestCase):
all_platforms = ('audiodev',)
def check_removal(self, module_name):
"""Make sure the specified module, when imported, raises a
DeprecationWarning and specifies itself in the message."""
original_module = None
if module_name in sys.modules:
original_module = sys.modules[module_name]
del sys.modules[module_name]
try:
with catch_warning() as w:
warnings.filterwarnings("error", ".+ removed",
DeprecationWarning)
try:
__import__(module_name, level=0)
except DeprecationWarning as exc:
self.assert_(module_name in exc.args[0])
else:
self.fail("DeprecationWarning not raised for %s" %
module_name)
finally:
if original_module:
sys.modules[module_name] = original_module
def test_platform_independent_removals(self):
# Make sure that the modules that are available on all platforms raise
# the proper DeprecationWarning.
for module_name in self.all_platforms:
self.check_removal(module_name)
def test_main(): def test_main():
run_unittest(TestPy3KWarnings) run_unittest(TestPy3KWarnings, TestStdlibRemovals)
if __name__ == '__main__': if __name__ == '__main__':
test_main() test_main()