summaryrefslogtreecommitdiffstats
path: root/Lib/unittest
diff options
context:
space:
mode:
authorSerhiy Storchaka <storchaka@gmail.com>2019-06-05 15:22:31 (GMT)
committerGitHub <noreply@github.com>2019-06-05 15:22:31 (GMT)
commit142566c028720934325f0b7fe28680afd046e00f (patch)
tree021875972731bf9271bf07cc05d17f15866ded7a /Lib/unittest
parent6c01ebcc0dfc6be22950fabb46bdc10dcb6202c9 (diff)
downloadcpython-142566c028720934325f0b7fe28680afd046e00f.zip
cpython-142566c028720934325f0b7fe28680afd046e00f.tar.gz
cpython-142566c028720934325f0b7fe28680afd046e00f.tar.bz2
[3.9] bpo-37116: Use PEP 570 syntax for positional-only parameters. (GH-12620)
Turn deprecation warnings added in 3.8 into TypeError.
Diffstat (limited to 'Lib/unittest')
-rw-r--r--Lib/unittest/case.py19
-rw-r--r--Lib/unittest/test/test_runner.py5
2 files changed, 3 insertions, 21 deletions
diff --git a/Lib/unittest/case.py b/Lib/unittest/case.py
index b363c63..8afb845 100644
--- a/Lib/unittest/case.py
+++ b/Lib/unittest/case.py
@@ -463,30 +463,13 @@ class TestCase(object):
"""
self._type_equality_funcs[typeobj] = function
- def addCleanup(*args, **kwargs):
+ def addCleanup(self, function, /, *args, **kwargs):
"""Add a function, with arguments, to be called when the test is
completed. Functions added are called on a LIFO basis and are
called after tearDown on test failure or success.
Cleanup items are called even if setUp fails (unlike tearDown)."""
- if len(args) >= 2:
- self, function, *args = args
- elif not args:
- raise TypeError("descriptor 'addCleanup' of 'TestCase' object "
- "needs an argument")
- elif 'function' in kwargs:
- function = kwargs.pop('function')
- self, *args = args
- import warnings
- warnings.warn("Passing 'function' as keyword argument is deprecated",
- DeprecationWarning, stacklevel=2)
- else:
- raise TypeError('addCleanup expected at least 1 positional '
- 'argument, got %d' % (len(args)-1))
- args = tuple(args)
-
self._cleanups.append((function, args, kwargs))
- addCleanup.__text_signature__ = '($self, function, /, *args, **kwargs)'
@classmethod
def addClassCleanup(cls, function, /, *args, **kwargs):
diff --git a/Lib/unittest/test/test_runner.py b/Lib/unittest/test/test_runner.py
index 7d36340..dd9a1b6 100644
--- a/Lib/unittest/test/test_runner.py
+++ b/Lib/unittest/test/test_runner.py
@@ -592,7 +592,7 @@ class TestModuleCleanUp(unittest.TestCase):
class TestableTest(unittest.TestCase):
def setUp(self2):
self2.addCleanup(cleanup, 1, 2, function=3, self=4)
- with self.assertWarns(DeprecationWarning):
+ with self.assertRaises(TypeError):
self2.addCleanup(function=cleanup, arg='hello')
def testNothing(self):
pass
@@ -603,8 +603,7 @@ class TestModuleCleanUp(unittest.TestCase):
unittest.TestCase.addCleanup(self=TestableTest(), function=cleanup)
runTests(TestableTest)
self.assertEqual(cleanups,
- [((), {'arg': 'hello'}),
- ((1, 2), {'function': 3, 'self': 4})])
+ [((1, 2), {'function': 3, 'self': 4})])
def test_with_errors_in_addClassCleanup(self):
ordering = []