summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIrit Katriel <1055913+iritkatriel@users.noreply.github.com>2022-01-24 21:47:40 (GMT)
committerGitHub <noreply@github.com>2022-01-24 21:47:40 (GMT)
commit573b54515740ce51dcf2402038a9d953aa6c317f (patch)
tree04cca4e1c9d3b70355f6857cef97cd0b4908a69c
parent1c705fda8f9902906edd26d46acb0433b0b098e1 (diff)
downloadcpython-573b54515740ce51dcf2402038a9d953aa6c317f.zip
cpython-573b54515740ce51dcf2402038a9d953aa6c317f.tar.gz
cpython-573b54515740ce51dcf2402038a9d953aa6c317f.tar.bz2
bpo-46431: improve error message on invalid calls to BaseExceptionGroup.__new__ (GH-30854)
-rw-r--r--Lib/test/test_exception_group.py2
-rw-r--r--Misc/NEWS.d/next/Core and Builtins/2022-01-24-16-58-01.bpo-46431.N6mKAx.rst1
-rw-r--r--Objects/exceptions.c5
3 files changed, 6 insertions, 2 deletions
diff --git a/Lib/test/test_exception_group.py b/Lib/test/test_exception_group.py
index f0ae377..bbfce94 100644
--- a/Lib/test/test_exception_group.py
+++ b/Lib/test/test_exception_group.py
@@ -22,7 +22,7 @@ class TestExceptionGroupTypeHierarchy(unittest.TestCase):
class BadConstructorArgs(unittest.TestCase):
def test_bad_EG_construction__too_many_args(self):
- MSG = 'function takes exactly 2 arguments'
+ MSG = 'BaseExceptionGroup.__new__\(\) takes exactly 2 arguments'
with self.assertRaisesRegex(TypeError, MSG):
ExceptionGroup('no errors')
with self.assertRaisesRegex(TypeError, MSG):
diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-01-24-16-58-01.bpo-46431.N6mKAx.rst b/Misc/NEWS.d/next/Core and Builtins/2022-01-24-16-58-01.bpo-46431.N6mKAx.rst
new file mode 100644
index 0000000..3a2af9d
--- /dev/null
+++ b/Misc/NEWS.d/next/Core and Builtins/2022-01-24-16-58-01.bpo-46431.N6mKAx.rst
@@ -0,0 +1 @@
+Improve error message on invalid calls to :meth:`BaseExceptionGroup.__new__`. \ No newline at end of file
diff --git a/Objects/exceptions.c b/Objects/exceptions.c
index 065503f..d8bfb31 100644
--- a/Objects/exceptions.c
+++ b/Objects/exceptions.c
@@ -685,7 +685,10 @@ BaseExceptionGroup_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
PyObject *message = NULL;
PyObject *exceptions = NULL;
- if (!PyArg_ParseTuple(args, "UO", &message, &exceptions)) {
+ if (!PyArg_ParseTuple(args,
+ "UO:BaseExceptionGroup.__new__",
+ &message,
+ &exceptions)) {
return NULL;
}