#3777: long(4.2) returned an int, and broke backward compatibility.
the __long__ slot is allowed to return either int or long, but the behaviour of
float objects should not change between 2.5 and 2.6.
Reviewed by Benjamin Peterson
diff --git a/Lib/test/test_long.py b/Lib/test/test_long.py
index e53fd05..5addd2e 100644
--- a/Lib/test/test_long.py
+++ b/Lib/test/test_long.py
@@ -279,6 +279,10 @@
self.assertEqual(long(314), 314L)
self.assertEqual(long(3.14), 3L)
self.assertEqual(long(314L), 314L)
+ # Check that long() of basic types actually returns a long
+ self.assertEqual(type(long(314)), long)
+ self.assertEqual(type(long(3.14)), long)
+ self.assertEqual(type(long(314L)), long)
# Check that conversion from float truncates towards zero
self.assertEqual(long(-3.14), -3L)
self.assertEqual(long(3.9), 3L)