Make int("...") return a long if an int would overflow.
Also remove the 512 character limitation for int(u"...") and long(u"...").
This closes SF bug #629989.
diff --git a/Lib/test/test_b1.py b/Lib/test/test_b1.py
index 65285ee..9e6c8d5 100644
--- a/Lib/test/test_b1.py
+++ b/Lib/test/test_b1.py
@@ -435,10 +435,8 @@
raise TestFailed, "int(%s)" % `s`
try:
int(s[1:])
-except ValueError:
- pass
-else:
- raise TestFailed, "int(%s)" % `s[1:]` + " should raise ValueError"
+except:
+ raise TestFailed, "int(%s)" % `s[1:]` + " should return long"
try:
int(1e100)
except OverflowError:
@@ -468,9 +466,12 @@
except ValueError: pass
else: raise TestFailed("int('53', 40) didn't raise ValueError")
-try: int('1' * 512)
-except ValueError: pass
-else: raise TestFailed("int('1' * 512) didn't raise ValueError")
+try: int('1' * 600)
+except: raise TestFailed("int('1' * 600) didn't return long")
+
+if have_unicode:
+ try: int(unichr(0x661) * 600)
+ except: raise TestFailed("int('\\u0661' * 600) didn't return long")
try: int(1, 12)
except TypeError: pass