Skip to content

[3.11] gh-111309: Use unittest to collect and run distutils tests #111311

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Oct 25, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 13 additions & 23 deletions Lib/distutils/tests/__init__.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
"""Test suite for distutils.

This test suite consists of a collection of test modules in the
distutils.tests package. Each test module has a name starting with
'test' and contains a function test_suite(). The function is expected
to return an initialized unittest.TestSuite instance.
distutils.tests package.

Tests for the command classes in the distutils.command package are
included in distutils.tests as well, instead of using a separate
Expand All @@ -13,29 +11,21 @@
"""

import os
import sys
import unittest
from test.support import run_unittest
from test.support.warnings_helper import save_restore_warnings_filters
from test.support import warnings_helper
from test.support import load_package_tests


here = os.path.dirname(__file__) or os.curdir


def test_suite():
suite = unittest.TestSuite()
for fn in os.listdir(here):
if fn.startswith("test") and fn.endswith(".py"):
modname = "distutils.tests." + fn[:-3]
# bpo-40055: Save/restore warnings filters to leave them unchanged.
# Importing tests imports docutils which imports pkg_resources
# which adds a warnings filter.
with save_restore_warnings_filters():
__import__(modname)
module = sys.modules[modname]
suite.addTest(module.test_suite())
return suite

def load_tests(*args):
# bpo-40055: Save/restore warnings filters to leave them unchanged.
# Importing tests imports docutils which imports pkg_resources
# which adds a warnings filter.
with (save_restore_warnings_filters(),
warnings_helper.check_warnings(
("The distutils.sysconfig module is deprecated", DeprecationWarning),
quiet=True)):
return load_package_tests(os.path.dirname(__file__), *args)

if __name__ == "__main__":
run_unittest(test_suite())
unittest.main()
7 changes: 2 additions & 5 deletions Lib/distutils/tests/test_archive_util.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
ARCHIVE_FORMATS)
from distutils.spawn import find_executable, spawn
from distutils.tests import support
from test.support import run_unittest, patch
from test.support import patch
from test.support.os_helper import change_cwd
from test.support.warnings_helper import check_warnings

Expand Down Expand Up @@ -389,8 +389,5 @@ def test_tarfile_root_owner(self):
finally:
archive.close()

def test_suite():
return unittest.TestLoader().loadTestsFromTestCase(ArchiveUtilTestCase)

if __name__ == "__main__":
run_unittest(test_suite())
unittest.main()
7 changes: 1 addition & 6 deletions Lib/distutils/tests/test_bdist.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
"""Tests for distutils.command.bdist."""
import os
import unittest
from test.support import run_unittest

import warnings
with warnings.catch_warnings():
Expand Down Expand Up @@ -44,9 +43,5 @@ def test_skip_build(self):
'%s should take --skip-build from bdist' % name)


def test_suite():
return unittest.TestLoader().loadTestsFromTestCase(BuildTestCase)


if __name__ == '__main__':
run_unittest(test_suite())
unittest.main()
6 changes: 1 addition & 5 deletions Lib/distutils/tests/test_bdist_dumb.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
import sys
import zipfile
import unittest
from test.support import run_unittest

from distutils.core import Distribution
from distutils.command.bdist_dumb import bdist_dumb
Expand Down Expand Up @@ -90,8 +89,5 @@ def test_simple_built(self):
wanted.append('foo.%s.pyc' % sys.implementation.cache_tag)
self.assertEqual(contents, sorted(wanted))

def test_suite():
return unittest.TestLoader().loadTestsFromTestCase(BuildDumbTestCase)

if __name__ == '__main__':
run_unittest(test_suite())
unittest.main()
7 changes: 2 additions & 5 deletions Lib/distutils/tests/test_bdist_rpm.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import unittest
import sys
import os
from test.support import run_unittest, requires_zlib
from test.support import requires_zlib

from distutils.core import Distribution
from distutils.command.bdist_rpm import bdist_rpm
Expand Down Expand Up @@ -134,8 +134,5 @@ def test_no_optimize_flag(self):

os.remove(os.path.join(pkg_dir, 'dist', 'foo-0.1-1.noarch.rpm'))

def test_suite():
return unittest.TestLoader().loadTestsFromTestCase(BuildRpmTestCase)

if __name__ == '__main__':
run_unittest(test_suite())
unittest.main()
6 changes: 1 addition & 5 deletions Lib/distutils/tests/test_build.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
import unittest
import os
import sys
from test.support import run_unittest

from distutils.command.build import build
from distutils.tests import support
Expand Down Expand Up @@ -50,8 +49,5 @@ def test_finalize_options(self):
# executable is os.path.normpath(sys.executable)
self.assertEqual(cmd.executable, os.path.normpath(sys.executable))

def test_suite():
return unittest.TestLoader().loadTestsFromTestCase(BuildTestCase)

if __name__ == "__main__":
run_unittest(test_suite())
unittest.main()
7 changes: 2 additions & 5 deletions Lib/distutils/tests/test_build_clib.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
import sysconfig

from test.support import (
run_unittest, missing_compiler_executable, requires_subprocess
missing_compiler_executable, requires_subprocess
)

from distutils.command.build_clib import build_clib
Expand Down Expand Up @@ -140,8 +140,5 @@ def test_run(self):
# let's check the result
self.assertIn('libfoo.a', os.listdir(build_temp))

def test_suite():
return unittest.TestLoader().loadTestsFromTestCase(BuildCLibTestCase)

if __name__ == "__main__":
run_unittest(test_suite())
unittest.main()
8 changes: 1 addition & 7 deletions Lib/distutils/tests/test_build_ext.py
Original file line number Diff line number Diff line change
Expand Up @@ -545,11 +545,5 @@ def build_ext(self, *args, **kwargs):
return build_ext


def test_suite():
suite = unittest.TestSuite()
suite.addTest(unittest.TestLoader().loadTestsFromTestCase(BuildExtTestCase))
suite.addTest(unittest.TestLoader().loadTestsFromTestCase(ParallelBuildExtTestCase))
return suite

if __name__ == '__main__':
support.run_unittest(__name__)
unittest.main()
7 changes: 2 additions & 5 deletions Lib/distutils/tests/test_build_py.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
from distutils.errors import DistutilsFileError

from distutils.tests import support
from test.support import run_unittest, requires_subprocess
from test.support import requires_subprocess


class BuildPyTestCase(support.TempdirManager,
Expand Down Expand Up @@ -174,8 +174,5 @@ def test_dont_write_bytecode(self):
self.logs[0][1] % self.logs[0][2])


def test_suite():
return unittest.TestLoader().loadTestsFromTestCase(BuildPyTestCase)

if __name__ == "__main__":
run_unittest(test_suite())
unittest.main()
6 changes: 1 addition & 5 deletions Lib/distutils/tests/test_build_scripts.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
from distutils import sysconfig

from distutils.tests import support
from test.support import run_unittest


class BuildScriptsTestCase(support.TempdirManager,
Expand Down Expand Up @@ -105,8 +104,5 @@ def test_version_int(self):
for name in expected:
self.assertIn(name, built)

def test_suite():
return unittest.TestLoader().loadTestsFromTestCase(BuildScriptsTestCase)

if __name__ == "__main__":
run_unittest(test_suite())
unittest.main()
6 changes: 1 addition & 5 deletions Lib/distutils/tests/test_check.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
import os
import textwrap
import unittest
from test.support import run_unittest

from distutils.command.check import check, HAS_DOCUTILS
from distutils.tests import support
Expand Down Expand Up @@ -156,8 +155,5 @@ def test_check_all(self):
{}, **{'strict': 1,
'restructuredtext': 1})

def test_suite():
return unittest.TestLoader().loadTestsFromTestCase(CheckTestCase)

if __name__ == "__main__":
run_unittest(test_suite())
unittest.main()
6 changes: 1 addition & 5 deletions Lib/distutils/tests/test_clean.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@

from distutils.command.clean import clean
from distutils.tests import support
from test.support import run_unittest

class cleanTestCase(support.TempdirManager,
support.LoggingSilencer,
Expand Down Expand Up @@ -42,8 +41,5 @@ def test_simple_run(self):
cmd.ensure_finalized()
cmd.run()

def test_suite():
return unittest.TestLoader().loadTestsFromTestCase(cleanTestCase)

if __name__ == "__main__":
run_unittest(test_suite())
unittest.main()
7 changes: 2 additions & 5 deletions Lib/distutils/tests/test_cmd.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
"""Tests for distutils.cmd."""
import unittest
import os
from test.support import captured_stdout, run_unittest
from test.support import captured_stdout

from distutils.cmd import Command
from distutils.dist import Distribution
Expand Down Expand Up @@ -119,8 +119,5 @@ def test_debug_print(self):
finally:
debug.DEBUG = False

def test_suite():
return unittest.TestLoader().loadTestsFromTestCase(CommandTestCase)

if __name__ == '__main__':
run_unittest(test_suite())
unittest.main()
6 changes: 1 addition & 5 deletions Lib/distutils/tests/test_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
from distutils.log import WARN

from distutils.tests import support
from test.support import run_unittest

PYPIRC = """\
[distutils]
Expand Down Expand Up @@ -134,8 +133,5 @@ def test_config_interpolation(self):
self.assertEqual(config, waited)


def test_suite():
return unittest.TestLoader().loadTestsFromTestCase(PyPIRCCommandTestCase)

if __name__ == "__main__":
run_unittest(test_suite())
unittest.main()
7 changes: 2 additions & 5 deletions Lib/distutils/tests/test_config_cmd.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import sys
import sysconfig
from test.support import (
run_unittest, missing_compiler_executable, requires_subprocess
missing_compiler_executable, requires_subprocess
)

from distutils.command.config import dump_file, config
Expand Down Expand Up @@ -96,8 +96,5 @@ def test_clean(self):
for f in (f1, f2):
self.assertFalse(os.path.exists(f))

def test_suite():
return unittest.TestLoader().loadTestsFromTestCase(ConfigTestCase)

if __name__ == "__main__":
run_unittest(test_suite())
unittest.main()
7 changes: 2 additions & 5 deletions Lib/distutils/tests/test_core.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
import os
import shutil
import sys
from test.support import captured_stdout, run_unittest
from test.support import captured_stdout
from test.support import os_helper
import unittest
from distutils.tests import support
Expand Down Expand Up @@ -133,8 +133,5 @@ def test_debug_mode(self):
wanted = "options (after parsing config files):\n"
self.assertEqual(stdout.readlines()[0], wanted)

def test_suite():
return unittest.TestLoader().loadTestsFromTestCase(CoreTestCase)

if __name__ == "__main__":
run_unittest(test_suite())
unittest.main()
6 changes: 1 addition & 5 deletions Lib/distutils/tests/test_cygwinccompiler.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
import sys
import os
from io import BytesIO
from test.support import run_unittest

from distutils import cygwinccompiler
from distutils.cygwinccompiler import (check_config_h,
Expand Down Expand Up @@ -147,8 +146,5 @@ def test_get_msvcr(self):
'[MSC v.1999 32 bits (Intel)]')
self.assertRaises(ValueError, get_msvcr)

def test_suite():
return unittest.TestLoader().loadTestsFromTestCase(CygwinCCompilerTestCase)

if __name__ == '__main__':
run_unittest(test_suite())
unittest.main()
6 changes: 1 addition & 5 deletions Lib/distutils/tests/test_dep_util.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
from distutils.dep_util import newer, newer_pairwise, newer_group
from distutils.errors import DistutilsFileError
from distutils.tests import support
from test.support import run_unittest

class DepUtilTestCase(support.TempdirManager, unittest.TestCase):

Expand Down Expand Up @@ -73,8 +72,5 @@ def test_newer_group(self):
missing='newer'))


def test_suite():
return unittest.TestLoader().loadTestsFromTestCase(DepUtilTestCase)

if __name__ == "__main__":
run_unittest(test_suite())
unittest.main()
7 changes: 2 additions & 5 deletions Lib/distutils/tests/test_dir_util.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@

from distutils import log
from distutils.tests import support
from test.support import run_unittest, is_emscripten, is_wasi
from test.support import is_emscripten, is_wasi


class DirUtilTestCase(support.TempdirManager, unittest.TestCase):
Expand Down Expand Up @@ -136,8 +136,5 @@ def test_copy_tree_exception_in_listdir(self):
dir_util.copy_tree(src, None)


def test_suite():
return unittest.TestLoader().loadTestsFromTestCase(DirUtilTestCase)

if __name__ == "__main__":
run_unittest(test_suite())
unittest.main()
Loading