diff --git a/Lib/distutils/__init__.py b/Lib/distutils/__init__.py index 8eef902f7d6..fdad6f65a78 100644 --- a/Lib/distutils/__init__.py +++ b/Lib/distutils/__init__.py @@ -13,7 +13,8 @@ import warnings __version__ = sys.version[:sys.version.index(' ')] -warnings.warn("The distutils package is deprecated and slated for " - "removal in Python 3.12. Use setuptools or check " - "PEP 632 for potential alternatives", +_DEPRECATION_MESSAGE = ("The distutils package is deprecated and slated for " + "removal in Python 3.12. Use setuptools or check " + "PEP 632 for potential alternatives") +warnings.warn(_DEPRECATION_MESSAGE, DeprecationWarning, 2) diff --git a/Lib/distutils/util.py b/Lib/distutils/util.py index 4b002ecef1d..2ce5c5b64d6 100644 --- a/Lib/distutils/util.py +++ b/Lib/distutils/util.py @@ -9,6 +9,7 @@ import re import importlib.util import string import sys +import distutils from distutils.errors import DistutilsPlatformError from distutils.dep_util import newer from distutils.spawn import spawn @@ -419,8 +420,10 @@ byte_compile(files, optimize=%r, force=%r, direct=1) """ % (optimize, force, prefix, base_dir, verbose)) + msg = distutils._DEPRECATION_MESSAGE cmd = [sys.executable] cmd.extend(subprocess._optim_args_from_interpreter_flags()) + cmd.append(f'-Wignore:{msg}:DeprecationWarning') cmd.append(script_name) spawn(cmd, dry_run=dry_run) execute(os.remove, (script_name,), "removing %s" % script_name, diff --git a/Lib/test/test_distutils.py b/Lib/test/test_distutils.py index a37f1179175..de94da54798 100644 --- a/Lib/test/test_distutils.py +++ b/Lib/test/test_distutils.py @@ -5,14 +5,20 @@ the test_suite() function there returns a test suite that's ready to be run. """ -import distutils.tests -import test.support +import warnings +from test import support +from test.support import warnings_helper + +with warnings_helper.check_warnings( + ("The distutils package is deprecated", DeprecationWarning)): + + import distutils.tests def test_main(): # used by regrtest - test.support.run_unittest(distutils.tests.test_suite()) - test.support.reap_children() + support.run_unittest(distutils.tests.test_suite()) + support.reap_children() def load_tests(*_):