]> granicus.if.org Git - python/commitdiff
Bug #1566800: make sure that EnvironmentError can be called with any
authorGeorg Brandl <georg@python.org>
Sat, 30 Sep 2006 09:03:45 +0000 (09:03 +0000)
committerGeorg Brandl <georg@python.org>
Sat, 30 Sep 2006 09:03:45 +0000 (09:03 +0000)
number of arguments, as was the case in Python 2.4.
 (backport from rev. 52061)

Lib/test/test_exceptions.py
Misc/NEWS
Objects/exceptions.c

index 345569f679c527685fdf9e2396e668042e6b932c..1d940466d5e1ba75d5c6d720343b492ae59c47d2 100644 (file)
@@ -196,11 +196,16 @@ class ExceptionTests(unittest.TestCase):
             (SystemExit, ('foo',),
                 {'message' : 'foo', 'args' : ('foo',), 'code' : 'foo'}),
             (IOError, ('foo',),
-                {'message' : 'foo', 'args' : ('foo',)}),
+                {'message' : 'foo', 'args' : ('foo',), 'filename' : None,
+                 'errno' : None, 'strerror' : None}),
             (IOError, ('foo', 'bar'),
-                {'message' : '', 'args' : ('foo', 'bar')}),
+                {'message' : '', 'args' : ('foo', 'bar'), 'filename' : None,
+                 'errno' : 'foo', 'strerror' : 'bar'}),
             (IOError, ('foo', 'bar', 'baz'),
-                {'message' : '', 'args' : ('foo', 'bar')}),
+                {'message' : '', 'args' : ('foo', 'bar'), 'filename' : 'baz',
+                 'errno' : 'foo', 'strerror' : 'bar'}),
+            (IOError, ('foo', 'bar', 'baz', 'quux'),
+                {'message' : '', 'args' : ('foo', 'bar', 'baz', 'quux')}),
             (EnvironmentError, ('errnoStr', 'strErrorStr', 'filenameStr'),
                 {'message' : '', 'args' : ('errnoStr', 'strErrorStr'),
                  'strerror' : 'strErrorStr', 'errno' : 'errnoStr',
index a484223b0b904199bcc7c9667db88503fa49829e..1024086a7da20bded7b3844af0f47892ba3b0406 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -12,6 +12,9 @@ What's New in Python 2.5.1c1?
 Core and builtins
 -----------------
 
+- Bug #1566800: make sure that EnvironmentError can be called with any
+  number of arguments, as was the case in Python 2.4.
+
 - Patch #1567691: super() and new.instancemethod() now don't accept
   keyword arguments any more (previously they accepted them, but didn't
   use them).
index bfe28a95c0a8db6dc725a25b7caf4be4d8ed5587..c0b813d4a2203eacd474f4713cdcbd28fc31d4ac 100644 (file)
@@ -510,7 +510,7 @@ EnvironmentError_init(PyEnvironmentErrorObject *self, PyObject *args,
     if (BaseException_init((PyBaseExceptionObject *)self, args, kwds) == -1)
         return -1;
 
-    if (PyTuple_GET_SIZE(args) <= 1) {
+    if (PyTuple_GET_SIZE(args) <= 1 || PyTuple_GET_SIZE(args) > 3) {
         return 0;
     }