mirror of
https://github.com/python/cpython.git
synced 2025-08-10 03:49:18 +00:00
Correct handling of functions with only kwarg args in getcallargs (closes #11256)
A patch from Daniel Urban.
This commit is contained in:
parent
41a9ec9003
commit
77d466079a
3 changed files with 25 additions and 2 deletions
|
@ -632,6 +632,16 @@ class TestGetcallargsFunctions(unittest.TestCase):
|
|||
self.assertEqualCallArgs(f, '2, c=4, **{u"b":3}')
|
||||
self.assertEqualCallArgs(f, 'b=2, **{u"a":3, u"c":4}')
|
||||
|
||||
def test_varkw_only(self):
|
||||
# issue11256:
|
||||
f = self.makeCallable('**c')
|
||||
self.assertEqualCallArgs(f, '')
|
||||
self.assertEqualCallArgs(f, 'a=1')
|
||||
self.assertEqualCallArgs(f, 'a=1, b=2')
|
||||
self.assertEqualCallArgs(f, 'c=3, **{"a": 1, "b": 2}')
|
||||
self.assertEqualCallArgs(f, '**UserDict(a=1, b=2)')
|
||||
self.assertEqualCallArgs(f, 'c=3, **UserDict(a=1, b=2)')
|
||||
|
||||
def test_tupleargs(self):
|
||||
f = self.makeCallable('(b,c), (d,(e,f))=(0,[1,2])')
|
||||
self.assertEqualCallArgs(f, '(2,3)')
|
||||
|
@ -693,6 +703,10 @@ class TestGetcallargsFunctions(unittest.TestCase):
|
|||
self.assertEqualException(f, '1')
|
||||
self.assertEqualException(f, '[1]')
|
||||
self.assertEqualException(f, '(1,2,3)')
|
||||
# issue11256:
|
||||
f3 = self.makeCallable('**c')
|
||||
self.assertEqualException(f3, '1, 2')
|
||||
self.assertEqualException(f3, '1, 2, a=1, b=2')
|
||||
|
||||
class TestGetcallargsMethods(TestGetcallargsFunctions):
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue