#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)