summaryrefslogtreecommitdiffstats
path: root/Lib/test
diff options
context:
space:
mode:
authorDong-hee Na <donghee.na92@gmail.com>2018-05-29 15:04:08 (GMT)
committerYury Selivanov <yury@magic.io>2018-05-29 15:04:08 (GMT)
commita9cab433bbf02f3a1de59d14dc8f583181ffe2d5 (patch)
tree0caa52b281b10d04c350ff0631ac24dd1418162e /Lib/test
parent9551f7719213243fd96c4f284079243773c26b3c (diff)
downloadcpython-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.py25
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(