[Python-checkins] r64835 - in python/trunk/Lib: fractions.py test/test_fractions.py
raymond.hettinger
python-checkins at python.org
Thu Jul 10 11:31:08 CEST 2008
Author: raymond.hettinger
Date: Thu Jul 10 11:31:08 2008
New Revision: 64835
Log:
Issue 3287: Raise correct exception for float inputs.
Modified:
python/trunk/Lib/fractions.py
python/trunk/Lib/test/test_fractions.py
Modified: python/trunk/Lib/fractions.py
==============================================================================
--- python/trunk/Lib/fractions.py (original)
+++ python/trunk/Lib/fractions.py Thu Jul 10 11:31:08 2008
@@ -96,9 +96,11 @@
if denominator == 0:
raise ZeroDivisionError('Fraction(%s, 0)' % numerator)
-
- numerator = numerator.__index__()
- denominator = denominator.__index__()
+ try:
+ numerator = numerator.__index__()
+ denominator = denominator.__index__()
+ except AttributeError:
+ raise TypeError('Numerator and denominator must support __index__.')
g = gcd(numerator, denominator)
self._numerator = numerator // g
self._denominator = denominator // g
Modified: python/trunk/Lib/test/test_fractions.py
==============================================================================
--- python/trunk/Lib/test/test_fractions.py (original)
+++ python/trunk/Lib/test/test_fractions.py Thu Jul 10 11:31:08 2008
@@ -62,11 +62,11 @@
self.assertRaisesMessage(ZeroDivisionError, "Fraction(12, 0)",
F, 12, 0)
- self.assertRaises(AttributeError, F, 1.5)
- self.assertRaises(AttributeError, F, 1.5 + 3j)
+ self.assertRaises(TypeError, F, 1.5)
+ self.assertRaises(TypeError, F, 1.5 + 3j)
- self.assertRaises(AttributeError, F, F(1, 2), 3)
- self.assertRaises(AttributeError, F, "3/2", 3)
+ self.assertRaises(TypeError, F, F(1, 2), 3)
+ self.assertRaises(TypeError, F, "3/2", 3)
def testFromString(self):
self.assertEquals((5, 1), _components(F("5")))
More information about the Python-checkins
mailing list