diff options
author | Hobson Lane <> | 2011-07-23 07:14:05 +0000 |
---|---|---|
committer | Olivier Tilloy <olivier@tilloy.net> | 2011-07-23 07:14:05 +0000 |
commit | d9ed549e2cb809c279db7b33fd7aa4bc2080f18c (patch) | |
tree | 379553450aa46ac1184282f73f26c4d180e56e37 | |
parent | 606382449ece9560f9fc7b7ed1dc64a028d68cba (diff) | |
parent | 81093f74b52dab98f5f0e21fd0f1067b5f097e9c (diff) | |
download | pyexiv2-d9ed549e2cb809c279db7b33fd7aa4bc2080f18c.tar.gz |
Added a __repr__ method to the Rational class.
-rw-r--r-- | doc/api.rst | 2 | ||||
-rw-r--r-- | src/pyexiv2/utils.py | 8 | ||||
-rw-r--r-- | test/rational.py | 5 |
3 files changed, 14 insertions, 1 deletions
diff --git a/doc/api.rst b/doc/api.rst index a91122b..ad626d9 100644 --- a/doc/api.rst +++ b/doc/api.rst @@ -67,7 +67,7 @@ pyexiv2.utils .. autofunction:: make_fraction .. autoclass:: Rational - :members: numerator, denominator, from_string, to_float, __eq__ + :members: numerator, denominator, from_string, to_float, __eq__, __str__, __repr__ .. autoclass:: GPSCoordinate :members: degrees, minutes, seconds, direction, from_string, __eq__, __str__ diff --git a/src/pyexiv2/utils.py b/src/pyexiv2/utils.py index 22a05f7..de56c21 100644 --- a/src/pyexiv2/utils.py +++ b/src/pyexiv2/utils.py @@ -269,6 +269,14 @@ class Rational(object): """ return '%d/%d' % (self._numerator, self._denominator) + def __repr__(self): + """ + :return: the official string representation of the object + :rtype: string + """ + return '%s(%d, %d)' % (self.__class__.__name__, self._numerator, self._denominator) + + def is_fraction(obj): """ diff --git a/test/rational.py b/test/rational.py index bff8e5f..bc49e9f 100644 --- a/test/rational.py +++ b/test/rational.py @@ -76,6 +76,11 @@ class TestRational(unittest.TestCase): self.assertEqual(str(Rational(3, 5)), '3/5') self.assertEqual(str(Rational(-3, 5)), '-3/5') + def test_repr(self): + self.assertEqual(repr(Rational(3, 5)), 'Rational(3, 5)') + self.assertEqual(repr(Rational(-3, 5)), 'Rational(-3, 5)') + self.assertEqual(repr(Rational(0, 3)), 'Rational(0, 3)') + def test_to_float(self): self.assertEqual(Rational(3, 6).to_float(), 0.5) self.assertEqual(Rational(11, 11).to_float(), 1.0) |