It's ok for __hex__ or __oct__ to return unicode.
Don't insist that float('1'*10000) raises an exception.
diff --git a/Lib/test/test_builtin.py b/Lib/test/test_builtin.py
index a11e40a..54df9e1 100644
--- a/Lib/test/test_builtin.py
+++ b/Lib/test/test_builtin.py
@@ -608,8 +608,7 @@
         if have_unicode:
             self.assertEqual(float(str("  3.14  ")), 3.14)
             self.assertEqual(float(str(b"  \u0663.\u0661\u0664  ",'raw-unicode-escape')), 3.14)
-            # Implementation limitation in PyFloat_FromString()
-            self.assertRaises(ValueError, float, str("1"*10000))
+            self.assertEqual(float("1"*10000), 1e10000) # Inf on both sides
 
     @run_with_locale('LC_NUMERIC', 'fr_FR', 'de_DE')
     def test_float_with_comma(self):