Disallow keyword args for exceptions.

This commit is contained in:
Georg Brandl 2006-05-30 07:34:45 +00:00
parent 008b861bf0
commit 861089fc49
2 changed files with 10 additions and 0 deletions

View File

@ -296,3 +296,10 @@ for args in exceptionList:
( repr(e), checkArgName, ( repr(e), checkArgName,
repr(expected[checkArgName]), repr(expected[checkArgName]),
repr(getattr(e, checkArgName)) )) repr(getattr(e, checkArgName)) ))
try:
BaseException(a=1)
except TypeErrror:
pass
else:
raise TestFailed("BaseException shouldn't take keyword args")

View File

@ -32,6 +32,9 @@ BaseException_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{ {
PyBaseExceptionObject *self; PyBaseExceptionObject *self;
if (!_PyArg_NoKeywords("BaseException", kwds))
return NULL;
self = (PyBaseExceptionObject *)type->tp_alloc(type, 0); self = (PyBaseExceptionObject *)type->tp_alloc(type, 0);
/* the dict is created on the fly in PyObject_GenericSetAttr */ /* the dict is created on the fly in PyObject_GenericSetAttr */
self->message = self->dict = NULL; self->message = self->dict = NULL;