diff --git a/num2words/base.py b/num2words/base.py index 025e014..ccf5248 100644 --- a/num2words/base.py +++ b/num2words/base.py @@ -139,7 +139,7 @@ class Num2Word_Base(object): def to_cardinal_float(self, value): try: float(value) == value - except (ValueError, TypeError, AssertionError): + except (ValueError, TypeError, AssertionError, AttributeError): raise TypeError(self.errmsg_nonnum % value) pre, post = self.float2tuple(float(value)) diff --git a/tests/test_base.py b/tests/test_base.py index ea7701c..bd9cbd1 100644 --- a/tests/test_base.py +++ b/tests/test_base.py @@ -32,3 +32,29 @@ class Num2WordBaseTest(TestCase): def test_to_currency_not_implemented(self): with self.assertRaises(NotImplementedError): self.base.to_currency(Decimal('1.00'), currency='EUR') + + def test_error_to_cardinal_float(self): + from num2words.base import Num2Word_Base + with self.assertRaises(TypeError): + Num2Word_Base.to_cardinal_float(9) + with self.assertRaises(TypeError): + Num2Word_Base.to_cardinal_float("a") + + def test_error_merge(self): + from num2words.base import Num2Word_Base + self.base = Num2Word_Base() + with self.assertRaises(NotImplementedError): + self.base.merge(2, 3) + + def test_is_title(self): + from num2words.base import Num2Word_Base + self.base = Num2Word_Base() + self.assertEqual( + self.base.title("one"), + "one" + ) + self.base.is_title = True + self.assertEqual( + self.base.title("one"), + "One" + )