Author: christian.heimes
Date: Tue Jan 15 03:01:20 2008
New Revision: 59966

Modified:
   python/branches/py3k/Lib/test/test_long.py
   python/branches/py3k/Misc/NEWS
   python/branches/py3k/Objects/longobject.c
Log:
long(float('nan')) raises an OverflowError as discussed on the mailing list a 
week ago

Modified: python/branches/py3k/Lib/test/test_long.py
==============================================================================
--- python/branches/py3k/Lib/test/test_long.py  (original)
+++ python/branches/py3k/Lib/test/test_long.py  Tue Jan 15 03:01:20 2008
@@ -539,7 +539,7 @@
 
     def test_nan_inf(self):
         self.assertRaises(OverflowError, int, float('inf'))
-        self.assertEqual(int(float('nan')), 0)
+        self.assertRaises(OverflowError, int, float('nan'))
 
 def test_main():
     test_support.run_unittest(LongTest)

Modified: python/branches/py3k/Misc/NEWS
==============================================================================
--- python/branches/py3k/Misc/NEWS      (original)
+++ python/branches/py3k/Misc/NEWS      Tue Jan 15 03:01:20 2008
@@ -12,6 +12,9 @@
 Core and Builtins
 -----------------
 
+- Object/longobject.c: long(float('nan')) raises an OverflowError instead
+  of returning 0.
+
 - Issue #1762972: __file__ points to the source file instead of the pyc/pyo
   file if the py file exists.
 

Modified: python/branches/py3k/Objects/longobject.c
==============================================================================
--- python/branches/py3k/Objects/longobject.c   (original)
+++ python/branches/py3k/Objects/longobject.c   Tue Jan 15 03:01:20 2008
@@ -255,7 +255,9 @@
                return NULL;
        }
        if (Py_IS_NAN(dval)) {
-               return PyLong_FromLong(0L);
+               PyErr_SetString(PyExc_OverflowError,
+                       "cannot convert float NaN to int");
+               return NULL;
        }
        if (dval < 0.0) {
                neg = 1;
_______________________________________________
Python-3000-checkins mailing list
Python-3000-checkins@python.org
http://mail.python.org/mailman/listinfo/python-3000-checkins

Reply via email to