]> granicus.if.org Git - python/commitdiff
Don't allow keyword arguments to reversed().
authorGeorg Brandl <georg@python.org>
Fri, 16 May 2008 13:24:29 +0000 (13:24 +0000)
committerGeorg Brandl <georg@python.org>
Fri, 16 May 2008 13:24:29 +0000 (13:24 +0000)
Lib/test/test_enumerate.py
Objects/enumobject.c

index a27846fbcf0229d597461686365b69a1825a2f8c..074179cfe0d00a92a968f9b73802e97416512da8 100644 (file)
@@ -138,6 +138,8 @@ class TestReversed(unittest.TestCase):
         for data in 'abc', range(5), tuple(enumerate('abc')), A(), xrange(1,17,5):
             self.assertEqual(list(data)[::-1], list(reversed(data)))
         self.assertRaises(TypeError, reversed, {})
+        # don't allow keyword arguments
+        self.assertRaises(TypeError, reversed, [], a=1)
 
     def test_xrange_optimization(self):
         x = xrange(1)
index 0bacc8346c3a3e58f05881c1a04f9d4bf91cb157..dfa738d503a8452b55e35fa48ff2c82fbe4837da 100644 (file)
@@ -224,7 +224,10 @@ reversed_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
        PyObject *seq;
        reversedobject *ro;
 
-       if (!PyArg_UnpackTuple(args, "reversed", 1, 1, &seq))
+       if (type == &PyReversed_Type && !_PyArg_NoKeywords("reversed()", kwds))
+               return NULL;
+
+       if (!PyArg_UnpackTuple(args, "reversed", 1, 1, &seq) )
                return NULL;
 
        if (PyObject_HasAttrString(seq, "__reversed__"))