bpo-29951: Include function name for some error messages in `PyArg_ParseTuple*` (#916)
Also changed format specifier for function name from "%s" to "%.200s"
and exception messages should start with lowercase letter.
diff --git a/Lib/test/test_capi.py b/Lib/test/test_capi.py
index 2a53f3d..6e14248 100644
--- a/Lib/test/test_capi.py
+++ b/Lib/test/test_capi.py
@@ -533,19 +533,19 @@
parse((1, 2, 3), {}, b'OOO', ['', '', 'a'])
parse((1, 2), {'a': 3}, b'OOO', ['', '', 'a'])
with self.assertRaisesRegex(TypeError,
- r'Function takes at least 2 positional arguments \(1 given\)'):
+ r'function takes at least 2 positional arguments \(1 given\)'):
parse((1,), {'a': 3}, b'OOO', ['', '', 'a'])
parse((1,), {}, b'O|OO', ['', '', 'a'])
with self.assertRaisesRegex(TypeError,
- r'Function takes at least 1 positional arguments \(0 given\)'):
+ r'function takes at least 1 positional arguments \(0 given\)'):
parse((), {}, b'O|OO', ['', '', 'a'])
parse((1, 2), {'a': 3}, b'OO$O', ['', '', 'a'])
with self.assertRaisesRegex(TypeError,
- r'Function takes exactly 2 positional arguments \(1 given\)'):
+ r'function takes exactly 2 positional arguments \(1 given\)'):
parse((1,), {'a': 3}, b'OO$O', ['', '', 'a'])
parse((1,), {}, b'O|O$O', ['', '', 'a'])
with self.assertRaisesRegex(TypeError,
- r'Function takes at least 1 positional arguments \(0 given\)'):
+ r'function takes at least 1 positional arguments \(0 given\)'):
parse((), {}, b'O|O$O', ['', '', 'a'])
with self.assertRaisesRegex(SystemError, r'Empty parameter name after \$'):
parse((1,), {}, b'O|$OO', ['', '', 'a'])
diff --git a/Lib/test/test_exceptions.py b/Lib/test/test_exceptions.py
index e6fa346..3378ceb 100644
--- a/Lib/test/test_exceptions.py
+++ b/Lib/test/test_exceptions.py
@@ -1090,7 +1090,7 @@
self.assertEqual(exc.name, 'somename')
self.assertEqual(exc.path, 'somepath')
- msg = "'invalid' is an invalid keyword argument for this function"
+ msg = "'invalid' is an invalid keyword argument for ImportError"
with self.assertRaisesRegex(TypeError, msg):
ImportError('test', invalid='keyword')
diff --git a/Lib/test/test_getargs2.py b/Lib/test/test_getargs2.py
index e5d9aa6..86df3a4 100644
--- a/Lib/test/test_getargs2.py
+++ b/Lib/test/test_getargs2.py
@@ -553,7 +553,8 @@
try:
getargs_keywords(arg1=(1,2))
except TypeError as err:
- self.assertEqual(str(err), "Required argument 'arg2' (pos 2) not found")
+ self.assertEqual(
+ str(err), "function missing required argument 'arg2' (pos 2)")
else:
self.fail('TypeError should have been raised')
@@ -626,16 +627,16 @@
)
# required arg missing
with self.assertRaisesRegex(TypeError,
- r"Required argument 'required' \(pos 1\) not found"):
+ r"function missing required argument 'required' \(pos 1\)"):
getargs_keyword_only(optional=2)
with self.assertRaisesRegex(TypeError,
- r"Required argument 'required' \(pos 1\) not found"):
+ r"function missing required argument 'required' \(pos 1\)"):
getargs_keyword_only(keyword_only=3)
def test_too_many_args(self):
with self.assertRaisesRegex(TypeError,
- r"Function takes at most 2 positional arguments \(3 given\)"):
+ r"function takes at most 2 positional arguments \(3 given\)"):
getargs_keyword_only(1, 2, 3)
with self.assertRaisesRegex(TypeError,
@@ -674,11 +675,11 @@
self.assertEqual(self.getargs(1), (1, -1, -1))
# required positional arg missing
with self.assertRaisesRegex(TypeError,
- r"Function takes at least 1 positional arguments \(0 given\)"):
+ r"function takes at least 1 positional arguments \(0 given\)"):
self.getargs()
with self.assertRaisesRegex(TypeError,
- r"Function takes at least 1 positional arguments \(0 given\)"):
+ r"function takes at least 1 positional arguments \(0 given\)"):
self.getargs(keyword=3)
def test_empty_keyword(self):