mirror of
https://github.com/python/cpython.git
synced 2025-09-26 18:29:57 +00:00
bpo-5846: Deprecate obsolete methods in unittest
(GH-28299)
Deprecate makeSuite, findTestCases, and getTestCaseNames. Scheduled for removal in Python 3.13.
This commit is contained in:
parent
9d76d28867
commit
ff6d2cc55a
4 changed files with 69 additions and 4 deletions
|
@ -352,6 +352,21 @@ Deprecated
|
||||||
:class:`~unittest.IsolatedAsyncioTestCase` test methods (other than the
|
:class:`~unittest.IsolatedAsyncioTestCase` test methods (other than the
|
||||||
default ``None`` value), is now deprecated.
|
default ``None`` value), is now deprecated.
|
||||||
|
|
||||||
|
* Deprecated the following :mod:`unittest` functions, scheduled for removal in
|
||||||
|
Python 3.13:
|
||||||
|
|
||||||
|
* :func:`unittest.findTestCases`
|
||||||
|
* :func:`unittest.makeSuite`
|
||||||
|
* :func:`unittest.getTestCaseNames`
|
||||||
|
|
||||||
|
Use :class:`~unittest.TestLoader` method instead:
|
||||||
|
|
||||||
|
* :meth:`unittest.TestLoader.loadTestsFromModule`
|
||||||
|
* :meth:`unittest.TestLoader.loadTestsFromTestCase`
|
||||||
|
* :meth:`unittest.TestLoader.getTestCaseNames`
|
||||||
|
|
||||||
|
(Contributed by Erlend E. Aasland in :issue:`5846`.)
|
||||||
|
|
||||||
|
|
||||||
Removed
|
Removed
|
||||||
=======
|
=======
|
||||||
|
|
|
@ -426,9 +426,14 @@ class TestSupport(unittest.TestCase):
|
||||||
extra=extra,
|
extra=extra,
|
||||||
not_exported=not_exported)
|
not_exported=not_exported)
|
||||||
|
|
||||||
extra = {'TextTestResult', 'installHandler'}
|
extra = {
|
||||||
|
'TextTestResult',
|
||||||
|
'findTestCases',
|
||||||
|
'getTestCaseNames',
|
||||||
|
'installHandler',
|
||||||
|
'makeSuite',
|
||||||
|
}
|
||||||
not_exported = {'load_tests', "TestProgram", "BaseTestSuite"}
|
not_exported = {'load_tests', "TestProgram", "BaseTestSuite"}
|
||||||
|
|
||||||
support.check__all__(self,
|
support.check__all__(self,
|
||||||
unittest,
|
unittest,
|
||||||
("unittest.result", "unittest.case",
|
("unittest.result", "unittest.case",
|
||||||
|
|
|
@ -52,6 +52,7 @@ __all__ = ['TestResult', 'TestCase', 'IsolatedAsyncioTestCase', 'TestSuite',
|
||||||
'addModuleCleanup']
|
'addModuleCleanup']
|
||||||
|
|
||||||
# Expose obsolete functions for backwards compatibility
|
# Expose obsolete functions for backwards compatibility
|
||||||
|
# bpo-5846: Deprecated in Python 3.11, scheduled for removal in Python 3.13.
|
||||||
__all__.extend(['getTestCaseNames', 'makeSuite', 'findTestCases'])
|
__all__.extend(['getTestCaseNames', 'makeSuite', 'findTestCases'])
|
||||||
|
|
||||||
__unittest = True
|
__unittest = True
|
||||||
|
@ -60,8 +61,7 @@ from .result import TestResult
|
||||||
from .case import (addModuleCleanup, TestCase, FunctionTestCase, SkipTest, skip,
|
from .case import (addModuleCleanup, TestCase, FunctionTestCase, SkipTest, skip,
|
||||||
skipIf, skipUnless, expectedFailure)
|
skipIf, skipUnless, expectedFailure)
|
||||||
from .suite import BaseTestSuite, TestSuite
|
from .suite import BaseTestSuite, TestSuite
|
||||||
from .loader import (TestLoader, defaultTestLoader, makeSuite, getTestCaseNames,
|
from .loader import TestLoader, defaultTestLoader
|
||||||
findTestCases)
|
|
||||||
from .main import TestProgram, main
|
from .main import TestProgram, main
|
||||||
from .runner import TextTestRunner, TextTestResult
|
from .runner import TextTestRunner, TextTestResult
|
||||||
from .signals import installHandler, registerResult, removeResult, removeHandler
|
from .signals import installHandler, registerResult, removeResult, removeHandler
|
||||||
|
@ -70,6 +70,37 @@ from .signals import installHandler, registerResult, removeResult, removeHandler
|
||||||
# deprecated
|
# deprecated
|
||||||
_TextTestResult = TextTestResult
|
_TextTestResult = TextTestResult
|
||||||
|
|
||||||
|
from .loader import (
|
||||||
|
makeSuite as _makeSuite,
|
||||||
|
findTestCases as _findTestCases,
|
||||||
|
getTestCaseNames as _getTestCaseNames,
|
||||||
|
)
|
||||||
|
|
||||||
|
import warnings
|
||||||
|
def makeSuite(*args, **kwargs):
|
||||||
|
warnings.warn(
|
||||||
|
"unittest.makeSuite() is deprecated and will be removed in Python 3.13. "
|
||||||
|
"Please use unittest.TestLoader.loadTestsFromTestCase() instead.",
|
||||||
|
DeprecationWarning, stacklevel=2
|
||||||
|
)
|
||||||
|
return _makeSuite(*args, **kwargs)
|
||||||
|
|
||||||
|
def getTestCaseNames(*args, **kwargs):
|
||||||
|
warnings.warn(
|
||||||
|
"unittest.getTestCaseNames() is deprecated and will be removed in Python 3.13. "
|
||||||
|
"Please use unittest.TestLoader.getTestCaseNames() instead.",
|
||||||
|
DeprecationWarning, stacklevel=2
|
||||||
|
)
|
||||||
|
return _getTestCaseNames(*args, **kwargs)
|
||||||
|
|
||||||
|
def findTestCases(*args, **kwargs):
|
||||||
|
warnings.warn(
|
||||||
|
"unittest.findTestCases() is deprecated and will be removed in Python 3.13. "
|
||||||
|
"Please use unittest.TestLoader.loadTestsFromModule() instead.",
|
||||||
|
DeprecationWarning, stacklevel=2
|
||||||
|
)
|
||||||
|
return _findTestCases(*args, **kwargs)
|
||||||
|
|
||||||
# There are no tests here, so don't try to run anything discovered from
|
# There are no tests here, so don't try to run anything discovered from
|
||||||
# introspecting the symbols (e.g. FunctionTestCase). Instead, all our
|
# introspecting the symbols (e.g. FunctionTestCase). Instead, all our
|
||||||
# tests come from within unittest.test.
|
# tests come from within unittest.test.
|
||||||
|
|
|
@ -0,0 +1,14 @@
|
||||||
|
Deprecated the following :mod:`unittest` functions, scheduled for removal in
|
||||||
|
Python 3.13:
|
||||||
|
|
||||||
|
* :func:`~unittest.findTestCases`
|
||||||
|
* :func:`~unittest.makeSuite`
|
||||||
|
* :func:`~unittest.getTestCaseNames`
|
||||||
|
|
||||||
|
Use :class:`~unittest.TestLoader` methods instead:
|
||||||
|
|
||||||
|
* :meth:`unittest.TestLoader.loadTestsFromModule`
|
||||||
|
* :meth:`unittest.TestLoader.loadTestsFromTestCase`
|
||||||
|
* :meth:`unittest.TestLoader.getTestCaseNames`
|
||||||
|
|
||||||
|
Patch by Erlend E. Aasland.
|
Loading…
Add table
Add a link
Reference in a new issue