self.assertRaises(TypeError, POINT, 2, 3, x=4)
self.assertRaises(TypeError, POINT, 2, 3, y=4)
- # Should this raise TypeError instead?
- self.assertRaises(ValueError, POINT, 2, 3, 4)
+ # too many initializers
+ self.assertRaises(TypeError, POINT, 2, 3, 4)
def test_keyword_initializers(self):
class POINT(Structure):
self.failUnlessEqual(cls, RuntimeError)
if issubclass(Exception, object):
self.failUnlessEqual(msg,
- "(Phone) <type 'exceptions.ValueError'>: too many initializers")
+ "(Phone) <type 'exceptions.TypeError'>: too many initializers")
else:
- self.failUnlessEqual(msg, "(Phone) exceptions.ValueError: too many initializers")
+ self.failUnlessEqual(msg, "(Phone) exceptions.TypeError: too many initializers")
def get_except(self, func, *args):
- Issue #1831: ctypes now raises a TypeError if conflicting positional
and named arguments are passed to a Structure or Union initializer.
+ When too many positional arguments are passed, also a TypeError is
+ raised instead of a ValueError.
- Convert the internal ctypes array type cache to a WeakValueDict so
that array types do not live longer than needed.
if (PyTuple_GET_SIZE(args) > PySequence_Length(fields)) {
Py_DECREF(fields);
- PyErr_SetString(PyExc_ValueError,
+ PyErr_SetString(PyExc_TypeError,
"too many initializers");
return -1;
}