diff options
author | Dong-hee Na <donghee.na92@gmail.com> | 2018-05-29 15:04:08 (GMT) |
---|---|---|
committer | Yury Selivanov <yury@magic.io> | 2018-05-29 15:04:08 (GMT) |
commit | a9cab433bbf02f3a1de59d14dc8f583181ffe2d5 (patch) | |
tree | 0caa52b281b10d04c350ff0631ac24dd1418162e /Lib/test | |
parent | 9551f7719213243fd96c4f284079243773c26b3c (diff) | |
download | cpython-a9cab433bbf02f3a1de59d14dc8f583181ffe2d5.zip cpython-a9cab433bbf02f3a1de59d14dc8f583181ffe2d5.tar.gz cpython-a9cab433bbf02f3a1de59d14dc8f583181ffe2d5.tar.bz2 |
bpo-33197: Update a error message of invalid inspect.Parameters. (GH-6636)
Diffstat (limited to 'Lib/test')
-rw-r--r-- | Lib/test/test_inspect.py | 25 |
1 files changed, 22 insertions, 3 deletions
diff --git a/Lib/test/test_inspect.py b/Lib/test/test_inspect.py index ee227a6..35e86b5 100644 --- a/Lib/test/test_inspect.py +++ b/Lib/test/test_inspect.py @@ -1499,6 +1499,20 @@ class TestGetcallargsFunctions(unittest.TestCase): with self.assertRaisesRegex(TypeError, "'a', 'b' and 'c'"): inspect.getcallargs(f6) + # bpo-33197 + with self.assertRaisesRegex(ValueError, + 'variadic keyword parameters cannot' + ' have default values'): + inspect.Parameter("foo", kind=inspect.Parameter.VAR_KEYWORD, + default=42) + with self.assertRaisesRegex(ValueError, + "value 5 is not a valid Parameter.kind"): + inspect.Parameter("bar", kind=5, default=42) + + with self.assertRaisesRegex(TypeError, + 'name must be a str, not a int'): + inspect.Parameter(123, kind=4) + class TestGetcallargsMethods(TestGetcallargsFunctions): def setUp(self): @@ -3099,7 +3113,8 @@ class TestParameterObject(unittest.TestCase): self.assertIs(p.annotation, p.empty) self.assertEqual(p.kind, inspect.Parameter.POSITIONAL_ONLY) - with self.assertRaisesRegex(ValueError, 'invalid value'): + with self.assertRaisesRegex(ValueError, "value '123' is " + "not a valid Parameter.kind"): inspect.Parameter('foo', default=10, kind='123') with self.assertRaisesRegex(ValueError, 'not a valid parameter name'): @@ -3189,7 +3204,9 @@ class TestParameterObject(unittest.TestCase): self.assertEqual(p2.kind, p2.POSITIONAL_OR_KEYWORD) self.assertNotEqual(p2, p) - with self.assertRaisesRegex(ValueError, 'invalid value for'): + with self.assertRaisesRegex(ValueError, + "value <class 'inspect._empty'> " + "is not a valid Parameter.kind"): p2 = p2.replace(kind=p2.empty) p2 = p2.replace(kind=p2.KEYWORD_ONLY) @@ -3202,7 +3219,9 @@ class TestParameterObject(unittest.TestCase): @cpython_only def test_signature_parameter_implicit(self): with self.assertRaisesRegex(ValueError, - 'implicit arguments must be passed in as'): + 'implicit arguments must be passed as ' + 'positional or keyword arguments, ' + 'not positional-only'): inspect.Parameter('.0', kind=inspect.Parameter.POSITIONAL_ONLY) param = inspect.Parameter( |