diff options
| author | Antony Lee <anntzer.lee@gmail.com> | 2021-09-24 15:22:49 (GMT) |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-09-24 15:22:49 (GMT) |
| commit | 6587fc60d447603fb8c631d81d9bb379f53c39ab (patch) | |
| tree | c52c3172f8845e2cb51eed4338436c9e6f58965a /Lib/test/test_operator.py | |
| parent | 8d8729146f21f61af66e70d3ae9501ea6bdccd09 (diff) | |
| download | cpython-6587fc60d447603fb8c631d81d9bb379f53c39ab.zip cpython-6587fc60d447603fb8c631d81d9bb379f53c39ab.tar.gz cpython-6587fc60d447603fb8c631d81d9bb379f53c39ab.tar.bz2 | |
bpo-44019: Implement operator.call(). (GH-27888)
Having `operator.call(obj, arg)` mean `type(obj).__call__(obj, arg)` is
consistent with the other dunder operators. The semantics with `*args,
**kwargs` then follow naturally from the single-arg semantics.
Diffstat (limited to 'Lib/test/test_operator.py')
| -rw-r--r-- | Lib/test/test_operator.py | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/Lib/test/test_operator.py b/Lib/test/test_operator.py index b9b8f15..cf3439f 100644 --- a/Lib/test/test_operator.py +++ b/Lib/test/test_operator.py @@ -518,6 +518,18 @@ class OperatorTestCase: with self.assertRaises(LookupError): operator.length_hint(X(LookupError)) + def test_call(self): + operator = self.module + + def func(*args, **kwargs): return args, kwargs + + self.assertEqual(operator.call(func), ((), {})) + self.assertEqual(operator.call(func, 0, 1), ((0, 1), {})) + self.assertEqual(operator.call(func, a=2, obj=3), + ((), {"a": 2, "obj": 3})) + self.assertEqual(operator.call(func, 0, 1, a=2, obj=3), + ((0, 1), {"a": 2, "obj": 3})) + def test_dunder_is_original(self): operator = self.module |
