summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGeorg Brandl <georg@python.org>2006-05-30 07:34:45 (GMT)
committerGeorg Brandl <georg@python.org>2006-05-30 07:34:45 (GMT)
commit861089fc49e17bc3d192e01f19641d9e01e0fa03 (patch)
treed0290b45b73c8110d7978a99ffc0d258fb14fb31
parent008b861bf03f515b19ced29b1138a7c9fc910d82 (diff)
downloadcpython-861089fc49e17bc3d192e01f19641d9e01e0fa03.zip
cpython-861089fc49e17bc3d192e01f19641d9e01e0fa03.tar.gz
cpython-861089fc49e17bc3d192e01f19641d9e01e0fa03.tar.bz2
Disallow keyword args for exceptions.
-rw-r--r--Lib/test/test_exceptions.py7
-rw-r--r--Objects/exceptions.c3
2 files changed, 10 insertions, 0 deletions
diff --git a/Lib/test/test_exceptions.py b/Lib/test/test_exceptions.py
index b4a766e..20e76b9 100644
--- a/Lib/test/test_exceptions.py
+++ b/Lib/test/test_exceptions.py
@@ -296,3 +296,10 @@ for args in exceptionList:
( repr(e), checkArgName,
repr(expected[checkArgName]),
repr(getattr(e, checkArgName)) ))
+
+try:
+ BaseException(a=1)
+except TypeErrror:
+ pass
+else:
+ raise TestFailed("BaseException shouldn't take keyword args")
diff --git a/Objects/exceptions.c b/Objects/exceptions.c
index 16ba5e5..28fb0c1 100644
--- a/Objects/exceptions.c
+++ b/Objects/exceptions.c
@@ -32,6 +32,9 @@ BaseException_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
PyBaseExceptionObject *self;
+ if (!_PyArg_NoKeywords("BaseException", kwds))
+ return NULL;
+
self = (PyBaseExceptionObject *)type->tp_alloc(type, 0);
/* the dict is created on the fly in PyObject_GenericSetAttr */
self->message = self->dict = NULL;