summaryrefslogtreecommitdiffstats
path: root/Lib/test
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/test')
-rw-r--r--Lib/test/test_functools.py17
-rw-r--r--Lib/test/test_inspect/test_inspect.py31
2 files changed, 36 insertions, 12 deletions
diff --git a/Lib/test/test_functools.py b/Lib/test/test_functools.py
index 559213f..1ce0f4d 100644
--- a/Lib/test/test_functools.py
+++ b/Lib/test/test_functools.py
@@ -395,6 +395,23 @@ class TestPartial:
f = self.partial(object)
self.assertRaises(TypeError, f.__setstate__, BadSequence())
+ def test_partial_as_method(self):
+ class A:
+ meth = self.partial(capture, 1, a=2)
+ cmeth = classmethod(self.partial(capture, 1, a=2))
+ smeth = staticmethod(self.partial(capture, 1, a=2))
+
+ a = A()
+ self.assertEqual(A.meth(3, b=4), ((1, 3), {'a': 2, 'b': 4}))
+ self.assertEqual(A.cmeth(3, b=4), ((1, A, 3), {'a': 2, 'b': 4}))
+ self.assertEqual(A.smeth(3, b=4), ((1, 3), {'a': 2, 'b': 4}))
+ with self.assertWarns(FutureWarning) as w:
+ self.assertEqual(a.meth(3, b=4), ((1, 3), {'a': 2, 'b': 4}))
+ self.assertEqual(w.filename, __file__)
+ self.assertEqual(a.cmeth(3, b=4), ((1, A, 3), {'a': 2, 'b': 4}))
+ self.assertEqual(a.smeth(3, b=4), ((1, 3), {'a': 2, 'b': 4}))
+
+
@unittest.skipUnless(c_functools, 'requires the C _functools module')
class TestPartialC(TestPartial, unittest.TestCase):
if c_functools:
diff --git a/Lib/test/test_inspect/test_inspect.py b/Lib/test/test_inspect/test_inspect.py
index 34739b6..5d0f328 100644
--- a/Lib/test/test_inspect/test_inspect.py
+++ b/Lib/test/test_inspect/test_inspect.py
@@ -3873,10 +3873,12 @@ class TestSignatureObject(unittest.TestCase):
def __init__(self, b):
pass
- self.assertEqual(C(1), (2, 1))
- self.assertEqual(self.signature(C),
- ((('a', ..., ..., "positional_or_keyword"),),
- ...))
+ with self.assertWarns(FutureWarning):
+ self.assertEqual(C(1), (2, 1))
+ with self.assertWarns(FutureWarning):
+ self.assertEqual(self.signature(C),
+ ((('a', ..., ..., "positional_or_keyword"),),
+ ...))
with self.subTest('partialmethod'):
class CM(type):
@@ -4024,10 +4026,12 @@ class TestSignatureObject(unittest.TestCase):
class C:
__init__ = functools.partial(lambda x, a: None, 2)
- C(1) # does not raise
- self.assertEqual(self.signature(C),
- ((('a', ..., ..., "positional_or_keyword"),),
- ...))
+ with self.assertWarns(FutureWarning):
+ C(1) # does not raise
+ with self.assertWarns(FutureWarning):
+ self.assertEqual(self.signature(C),
+ ((('a', ..., ..., "positional_or_keyword"),),
+ ...))
with self.subTest('partialmethod'):
class C:
@@ -4282,10 +4286,13 @@ class TestSignatureObject(unittest.TestCase):
class C:
__call__ = functools.partial(lambda x, a: (x, a), 2)
- self.assertEqual(C()(1), (2, 1))
- self.assertEqual(self.signature(C()),
- ((('a', ..., ..., "positional_or_keyword"),),
- ...))
+ c = C()
+ with self.assertWarns(FutureWarning):
+ self.assertEqual(c(1), (2, 1))
+ with self.assertWarns(FutureWarning):
+ self.assertEqual(self.signature(c),
+ ((('a', ..., ..., "positional_or_keyword"),),
+ ...))
with self.subTest('partialmethod'):
class C: