~osomon/pyexiv2/pyexiv2-0.3

« back to all changes in this revision

Viewing changes to test/utils.py

  • Committer: Olivier Tilloy
  • Date: 2011-10-22 19:03:40 UTC
  • mto: This revision was merged to the branch mainline in revision 368.
  • Revision ID: olivier.tilloy@canonical.com-20111022190340-7ggwygh45aqym25c
Updated windows build dependencies:
 • exiv2 0.21.1 → 0.22

Show diffs side-by-side

added added

removed removed

Lines of Context:
2
2
 
3
3
# ******************************************************************************
4
4
#
5
 
# Copyright (C) 2010-2012 Olivier Tilloy <olivier@tilloy.net>
 
5
# Copyright (C) 2010 Olivier Tilloy <olivier@tilloy.net>
6
6
#
7
7
# This file is part of the pyexiv2 distribution.
8
8
#
26
26
 
27
27
import unittest
28
28
 
29
 
from pyexiv2.utils import undefined_to_string, string_to_undefined, \
30
 
                          Rational, Fraction, \
31
 
                          is_fraction, make_fraction, fraction_to_string
 
29
from pyexiv2.utils import undefined_to_string, string_to_undefined
32
30
 
33
31
 
34
32
class TestConversions(unittest.TestCase):
36
34
    def test_undefined_to_string(self):
37
35
        self.assertEqual(undefined_to_string("48 50 50 49"), "0221")
38
36
        self.assertEqual(undefined_to_string("48 50 50 49 "), "0221")
39
 
        self.assertEqual(undefined_to_string(""), "")
 
37
        self.assertRaises(ValueError, undefined_to_string, "")
40
38
        self.assertRaises(ValueError, undefined_to_string, "foo")
41
39
        self.assertRaises(ValueError, undefined_to_string, "48 50  50 49")
42
40
 
50
48
        value = "48 50 50 49"
51
49
        self.assertEqual(string_to_undefined(undefined_to_string(value)), value)
52
50
 
53
 
 
54
 
class TestFractions(unittest.TestCase):
55
 
 
56
 
    def test_is_fraction(self):
57
 
        if Fraction is not None:
58
 
            self.failUnless(is_fraction(Fraction()))
59
 
            self.failUnless(is_fraction(Fraction(3, 5)))
60
 
            self.failUnless(is_fraction(Fraction(Fraction(4, 5))))
61
 
            self.failUnless(is_fraction(Fraction('3/2')))
62
 
            self.failUnless(is_fraction(Fraction('-4/5')))
63
 
        self.failUnless(is_fraction(Rational(3, 5)))
64
 
        self.failUnless(is_fraction(Rational(-4, 5)))
65
 
        self.failUnless(is_fraction(Rational.from_string("3/5")))
66
 
        self.failUnless(is_fraction(Rational.from_string("-4/5")))
67
 
 
68
 
        self.failIf(is_fraction(3 / 5))
69
 
        self.failIf(is_fraction('3/5'))
70
 
        self.failIf(is_fraction('2.7'))
71
 
        self.failIf(is_fraction(2.7))
72
 
        self.failIf(is_fraction('notafraction'))
73
 
        self.failIf(is_fraction(None))
74
 
 
75
 
    def test_make_fraction(self):
76
 
        if Fraction is not None:
77
 
            self.assertEqual(make_fraction(3, 5), Fraction(3, 5))
78
 
            self.assertEqual(make_fraction(-3, 5), Fraction(-3, 5))
79
 
            self.assertEqual(make_fraction('3/2'), Fraction(3, 2))
80
 
            self.assertEqual(make_fraction('-3/4'), Fraction(-3, 4))
81
 
            self.assertEqual(make_fraction('0/0'), Fraction(0, 1))
82
 
        else:
83
 
            self.assertEqual(make_fraction(3, 5), Rational(3, 5))
84
 
            self.assertEqual(make_fraction(-3, 5), Rational(-3, 5))
85
 
            self.assertEqual(make_fraction('3/2'), Rational(3, 2))
86
 
            self.assertEqual(make_fraction('-3/4'), Rational(-3, 4))
87
 
            self.assertEqual(make_fraction('0/0'), Rational(0, 1))
88
 
 
89
 
        self.assertRaises(ZeroDivisionError, make_fraction, 3, 0)
90
 
        self.assertRaises(ZeroDivisionError, make_fraction, '3/0')
91
 
        self.assertRaises(TypeError, make_fraction, 5, 3, 2)
92
 
        self.assertRaises(TypeError, make_fraction, None)
93
 
 
94
 
    def test_fraction_to_string(self):
95
 
        self.assertEqual(fraction_to_string(make_fraction(3, 5)), '3/5')
96
 
        self.assertEqual(fraction_to_string(make_fraction(-3, 5)), '-3/5')
97
 
        self.assertEqual(fraction_to_string(make_fraction(0, 1)), '0/1')
98
 
        self.assertRaises(TypeError, fraction_to_string, None)
99
 
        self.assertRaises(TypeError, fraction_to_string, 'invalid')
100