mirror of
https://github.com/python/cpython.git
synced 2025-11-01 10:45:30 +00:00
inspect.Signature: ensure that non-default params don't follow default ones #20427
This commit is contained in:
parent
76c6c593ed
commit
07a9e452ac
2 changed files with 32 additions and 2 deletions
|
|
@ -1522,11 +1522,13 @@ class TestSignatureObject(unittest.TestCase):
|
|||
|
||||
self.assertEqual(str(S()), '()')
|
||||
|
||||
def test(po, pk, *args, ko, **kwargs):
|
||||
def test(po, pk, pod=42, pkd=100, *args, ko, **kwargs):
|
||||
pass
|
||||
sig = inspect.signature(test)
|
||||
po = sig.parameters['po'].replace(kind=P.POSITIONAL_ONLY)
|
||||
pod = sig.parameters['pod'].replace(kind=P.POSITIONAL_ONLY)
|
||||
pk = sig.parameters['pk']
|
||||
pkd = sig.parameters['pkd']
|
||||
args = sig.parameters['args']
|
||||
ko = sig.parameters['ko']
|
||||
kwargs = sig.parameters['kwargs']
|
||||
|
|
@ -1549,6 +1551,15 @@ class TestSignatureObject(unittest.TestCase):
|
|||
with self.assertRaisesRegex(ValueError, 'duplicate parameter name'):
|
||||
S((po, pk, args, kwargs2, ko))
|
||||
|
||||
with self.assertRaisesRegex(ValueError, 'follows default argument'):
|
||||
S((pod, po))
|
||||
|
||||
with self.assertRaisesRegex(ValueError, 'follows default argument'):
|
||||
S((po, pkd, pk))
|
||||
|
||||
with self.assertRaisesRegex(ValueError, 'follows default argument'):
|
||||
S((pkd, pk))
|
||||
|
||||
def test_signature_immutability(self):
|
||||
def test(a):
|
||||
pass
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue