]> granicus.if.org Git - python/commitdiff
Use repr() for bad input strings; this makes the empty string or binary characters...
authorAndrew M. Kuchling <amk@amk.ca>
Sat, 21 Jun 2008 13:47:20 +0000 (13:47 +0000)
committerAndrew M. Kuchling <amk@amk.ca>
Sat, 21 Jun 2008 13:47:20 +0000 (13:47 +0000)
Lib/fractions.py
Lib/test/test_fractions.py

index 0d85f15d6cc9bdab291251c6290872ffc89d3833..f06e4d40389960f2f0355fac340a5a9d7307aba7 100755 (executable)
@@ -70,7 +70,7 @@ class Fraction(Rational):
                 input = numerator
                 m = _RATIONAL_FORMAT.match(input)
                 if m is None:
-                    raise ValueError('Invalid literal for Fraction: ' + input)
+                    raise ValueError('Invalid literal for Fraction: %r' % input)
                 numerator = m.group('num')
                 decimal = m.group('decimal')
                 if decimal:
index 743f0943a499249520ca365f772c39aecf86ca61..3d90b5ae35d0f5837f47aa94182b76ebe3ac1683 100644 (file)
@@ -86,38 +86,38 @@ class FractionTest(unittest.TestCase):
             ZeroDivisionError, "Fraction(3, 0)",
             F, "3/0")
         self.assertRaisesMessage(
-            ValueError, "Invalid literal for Fraction: 3/",
+            ValueError, "Invalid literal for Fraction: '3/'",
             F, "3/")
         self.assertRaisesMessage(
-            ValueError, "Invalid literal for Fraction: 3 /2",
+            ValueError, "Invalid literal for Fraction: '3 /2'",
             F, "3 /2")
         self.assertRaisesMessage(
             # Denominators don't need a sign.
-            ValueError, "Invalid literal for Fraction: 3/+2",
+            ValueError, "Invalid literal for Fraction: '3/+2'",
             F, "3/+2")
         self.assertRaisesMessage(
             # Imitate float's parsing.
-            ValueError, "Invalid literal for Fraction: + 3/2",
+            ValueError, "Invalid literal for Fraction: '+ 3/2'",
             F, "+ 3/2")
         self.assertRaisesMessage(
             # Avoid treating '.' as a regex special character.
-            ValueError, "Invalid literal for Fraction: 3a2",
+            ValueError, "Invalid literal for Fraction: '3a2'",
             F, "3a2")
         self.assertRaisesMessage(
             # Only parse ordinary decimals, not scientific form.
-            ValueError, "Invalid literal for Fraction: 3.2e4",
+            ValueError, "Invalid literal for Fraction: '3.2e4'",
             F, "3.2e4")
         self.assertRaisesMessage(
             # Don't accept combinations of decimals and fractions.
-            ValueError, "Invalid literal for Fraction: 3/7.2",
+            ValueError, "Invalid literal for Fraction: '3/7.2'",
             F, "3/7.2")
         self.assertRaisesMessage(
             # Don't accept combinations of decimals and fractions.
-            ValueError, "Invalid literal for Fraction: 3.2/7",
+            ValueError, "Invalid literal for Fraction: '3.2/7'",
             F, "3.2/7")
         self.assertRaisesMessage(
             # Allow 3. and .3, but not .
-            ValueError, "Invalid literal for Fraction: .",
+            ValueError, "Invalid literal for Fraction: '.'",
             F, ".")
 
     def testImmutable(self):