[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

AltStyle によって変換されたページ (->オリジナル) /