diff --git a/Doc/library/commands.rst b/Doc/library/commands.rst index 177710b5676..c3f771085e0 100644 --- a/Doc/library/commands.rst +++ b/Doc/library/commands.rst @@ -42,7 +42,13 @@ The :mod:`commands` module defines the following functions: .. deprecated:: 2.6 This function is nonobvious and useless, also the name is misleading in the - presence of :func:`getstatusoutput`. + presence of :func:`getstatusoutput`. It is removed in 3.x. + +.. warning:: + + Two undocumented functions in this module, :func:`mk2arg` and :func:`mkargs` + are removed in 3.x. + Example:: diff --git a/Lib/commands.py b/Lib/commands.py index d19aa1a480a..b4e1d3c0f6a 100644 --- a/Lib/commands.py +++ b/Lib/commands.py @@ -63,6 +63,8 @@ def getstatusoutput(cmd): # Make command argument from directory and pathname (prefix space, add quotes). # def mk2arg(head, x): + from warnings import warnpy3k + warnpy3k("In 3.x, mk2arg is removed.") import os return mkarg(os.path.join(head, x)) @@ -75,6 +77,8 @@ def mk2arg(head, x): # with backslash. # def mkarg(x): + from warnings import warnpy3k + warnpy3k("in 3.x, mkarg is remove.") if '\'' not in x: return ' \'' + x + '\'' s = ' "' diff --git a/Lib/test/test_py3kwarn.py b/Lib/test/test_py3kwarn.py index 180342b3d0c..d5574f499cd 100644 --- a/Lib/test/test_py3kwarn.py +++ b/Lib/test/test_py3kwarn.py @@ -212,6 +212,15 @@ class TestStdlibRemovals(unittest.TestCase): mod.walk(".", dumbo, None) self.assertEquals(str(w.message), msg) + def test_commands_members(self): + import commands + members = {"mk2arg" : 2, "mkarg" : 1, "getstatus" : 1} + for name, arg_count in members.items(): + with catch_warning(record=False): + warnings.filterwarnings("error") + func = getattr(commands, name) + self.assertRaises(DeprecationWarning, func, *([None]*arg_count)) + def test_main(): run_unittest(TestPy3KWarnings,