Exemple #1
0
 def test_convert_to_python_comment(self):
     # Valid values
     tag = ExifTag("Exif.Photo.UserComment")
     self.assertEqual(tag.type, "Comment")
     self.assertEqual(tag._convert_to_python("A comment"), "A comment")
     for charset in ("Ascii", "Jis", "Unicode", "Undefined", "InvalidCharsetId"):
         self.assertEqual(tag._convert_to_python('charset="%s" A comment' % charset), "A comment")
     for charset in ("Ascii", "Jis", "Undefined", "InvalidCharsetId"):
         self.failIfEqual(tag._convert_to_python('charset="%s" déjà vu' % charset), u"déjà vu")
Exemple #2
0
 def test_convert_to_python_comment(self):
     # Valid values
     tag = ExifTag('Exif.Photo.UserComment')
     self.assertEqual(tag.type, 'Comment')
     self.assertEqual(tag._convert_to_python('A comment'), 'A comment')
     for charset in ('Ascii', 'Jis', 'Unicode', 'Undefined', 'InvalidCharsetId'):
         self.assertEqual(tag._convert_to_python('charset="%s" A comment' % charset), 'A comment')
     for charset in ('Ascii', 'Jis', 'Undefined', 'InvalidCharsetId'):
         self.failIfEqual(tag._convert_to_python('charset="%s" déjà vu' % charset), u'déjà vu')
Exemple #3
0
    def test_convert_to_python_srational(self):
        # Valid values
        tag = ExifTag('Exif.Image.BaselineExposure')
        self.assertEqual(tag.type, 'SRational')
        self.assertEqual(tag._convert_to_python('5/3'), make_fraction(5, 3))
        self.assertEqual(tag._convert_to_python('-5/3'), make_fraction(-5, 3))

        # Invalid values
        self.failUnlessRaises(ExifValueError, tag._convert_to_python, 'invalid')
        self.failUnlessRaises(ExifValueError, tag._convert_to_python, '5 / 3')
        self.failUnlessRaises(ExifValueError, tag._convert_to_python, '5/-3')
Exemple #4
0
    def test_convert_to_python_srational(self):
        # Valid values
        tag = ExifTag("Exif.Image.BaselineExposure")
        self.assertEqual(tag.type, "SRational")
        self.assertEqual(tag._convert_to_python("5/3"), make_fraction(5, 3))
        self.assertEqual(tag._convert_to_python("-5/3"), make_fraction(-5, 3))

        # Invalid values
        self.failUnlessRaises(ExifValueError, tag._convert_to_python, "invalid")
        self.failUnlessRaises(ExifValueError, tag._convert_to_python, "5 / 3")
        self.failUnlessRaises(ExifValueError, tag._convert_to_python, "5/-3")
Exemple #5
0
    def test_convert_to_python_short(self):
        # Valid values
        tag = ExifTag("Exif.Image.BitsPerSample")
        self.assertEqual(tag.type, "Short")
        self.assertEqual(tag._convert_to_python("8"), 8)
        self.assertEqual(tag._convert_to_python("+5628"), 5628)

        # Invalid values
        self.failUnlessRaises(ExifValueError, tag._convert_to_python, "abc")
        self.failUnlessRaises(ExifValueError, tag._convert_to_python, "5,64")
        self.failUnlessRaises(ExifValueError, tag._convert_to_python, "47.0001")
        self.failUnlessRaises(ExifValueError, tag._convert_to_python, "1E3")
Exemple #6
0
    def test_convert_to_python_long(self):
        # Valid values
        tag = ExifTag("Exif.Image.ImageWidth")
        self.assertEqual(tag.type, "Long")
        self.assertEqual(tag._convert_to_python("8"), 8)
        self.assertEqual(tag._convert_to_python("+5628"), 5628)

        # Invalid values
        self.failUnlessRaises(ExifValueError, tag._convert_to_python, "abc")
        self.failUnlessRaises(ExifValueError, tag._convert_to_python, "5,64")
        self.failUnlessRaises(ExifValueError, tag._convert_to_python, "47.0001")
        self.failUnlessRaises(ExifValueError, tag._convert_to_python, "1E3")
Exemple #7
0
    def test_convert_to_python_srational(self):
        # Valid values
        tag = ExifTag('Exif.Image.BaselineExposure')
        self.assertEqual(tag.type, 'SRational')
        self.assertEqual(tag._convert_to_python('5/3'), make_fraction(5, 3))
        self.assertEqual(tag._convert_to_python('-5/3'), make_fraction(-5, 3))

        # Invalid values
        self.failUnlessRaises(ExifValueError, tag._convert_to_python,
                              'invalid')
        self.failUnlessRaises(ExifValueError, tag._convert_to_python, '5 / 3')
        self.failUnlessRaises(ExifValueError, tag._convert_to_python, '5/-3')
Exemple #8
0
    def test_convert_to_python_long(self):
        # Valid values
        tag = ExifTag('Exif.Image.ImageWidth')
        self.assertEqual(tag.type, 'Long')
        self.assertEqual(tag._convert_to_python('8'), 8)
        self.assertEqual(tag._convert_to_python('+5628'), 5628)

        # Invalid values
        self.failUnlessRaises(ExifValueError, tag._convert_to_python, 'abc')
        self.failUnlessRaises(ExifValueError, tag._convert_to_python, '5,64')
        self.failUnlessRaises(ExifValueError, tag._convert_to_python, '47.0001')
        self.failUnlessRaises(ExifValueError, tag._convert_to_python, '1E3')
Exemple #9
0
    def test_convert_to_python_short(self):
        # Valid values
        tag = ExifTag('Exif.Image.BitsPerSample')
        self.assertEqual(tag.type, 'Short')
        self.assertEqual(tag._convert_to_python('8'), 8)
        self.assertEqual(tag._convert_to_python('+5628'), 5628)

        # Invalid values
        self.failUnlessRaises(ExifValueError, tag._convert_to_python, 'abc')
        self.failUnlessRaises(ExifValueError, tag._convert_to_python, '5,64')
        self.failUnlessRaises(ExifValueError, tag._convert_to_python, '47.0001')
        self.failUnlessRaises(ExifValueError, tag._convert_to_python, '1E3')
Exemple #10
0
    def test_convert_to_python_sshort(self):
        # Valid values
        tag = ExifTag("Exif.Image.TimeZoneOffset")
        self.assertEqual(tag.type, "SShort")
        self.assertEqual(tag._convert_to_python("8"), 8)
        self.assertEqual(tag._convert_to_python("+5"), 5)
        self.assertEqual(tag._convert_to_python("-6"), -6)

        # Invalid values
        self.failUnlessRaises(ExifValueError, tag._convert_to_python, "abc")
        self.failUnlessRaises(ExifValueError, tag._convert_to_python, "5,64")
        self.failUnlessRaises(ExifValueError, tag._convert_to_python, "47.0001")
        self.failUnlessRaises(ExifValueError, tag._convert_to_python, "1E3")
Exemple #11
0
    def test_convert_to_python_slong(self):
        # Valid values
        tag = ExifTag('Exif.OlympusCs.ManometerReading')
        self.assertEqual(tag.type, 'SLong')
        self.assertEqual(tag._convert_to_python('23'), 23)
        self.assertEqual(tag._convert_to_python('+5628'), 5628)
        self.assertEqual(tag._convert_to_python('-437'), -437)

        # Invalid values
        self.failUnlessRaises(ExifValueError, tag._convert_to_python, 'abc')
        self.failUnlessRaises(ExifValueError, tag._convert_to_python, '5,64')
        self.failUnlessRaises(ExifValueError, tag._convert_to_python, '47.0001')
        self.failUnlessRaises(ExifValueError, tag._convert_to_python, '1E3')
Exemple #12
0
    def test_convert_to_python_sshort(self):
        # Valid values
        tag = ExifTag('Exif.Image.TimeZoneOffset')
        self.assertEqual(tag.type, 'SShort')
        self.assertEqual(tag._convert_to_python('8'), 8)
        self.assertEqual(tag._convert_to_python('+5'), 5)
        self.assertEqual(tag._convert_to_python('-6'), -6)

        # Invalid values
        self.failUnlessRaises(ExifValueError, tag._convert_to_python, 'abc')
        self.failUnlessRaises(ExifValueError, tag._convert_to_python, '5,64')
        self.failUnlessRaises(ExifValueError, tag._convert_to_python, '47.0001')
        self.failUnlessRaises(ExifValueError, tag._convert_to_python, '1E3')
Exemple #13
0
    def test_convert_to_python_short(self):
        # Valid values
        tag = ExifTag('Exif.Image.BitsPerSample')
        self.assertEqual(tag.type, 'Short')
        self.assertEqual(tag._convert_to_python('8'), 8)
        self.assertEqual(tag._convert_to_python('+5628'), 5628)

        # Invalid values
        self.failUnlessRaises(ExifValueError, tag._convert_to_python, 'abc')
        self.failUnlessRaises(ExifValueError, tag._convert_to_python, '5,64')
        self.failUnlessRaises(ExifValueError, tag._convert_to_python,
                              '47.0001')
        self.failUnlessRaises(ExifValueError, tag._convert_to_python, '1E3')
Exemple #14
0
    def test_convert_to_python_slong(self):
        # Valid values
        tag = ExifTag("Exif.OlympusCs.ManometerReading")
        self.assertEqual(tag.type, "SLong")
        self.assertEqual(tag._convert_to_python("23"), 23)
        self.assertEqual(tag._convert_to_python("+5628"), 5628)
        self.assertEqual(tag._convert_to_python("-437"), -437)

        # Invalid values
        self.failUnlessRaises(ExifValueError, tag._convert_to_python, "abc")
        self.failUnlessRaises(ExifValueError, tag._convert_to_python, "5,64")
        self.failUnlessRaises(ExifValueError, tag._convert_to_python, "47.0001")
        self.failUnlessRaises(ExifValueError, tag._convert_to_python, "1E3")
Exemple #15
0
    def test_convert_to_python_long(self):
        # Valid values
        tag = ExifTag('Exif.Image.ImageWidth')
        self.assertEqual(tag.type, 'Long')
        self.assertEqual(tag._convert_to_python('8'), 8)
        self.assertEqual(tag._convert_to_python('+5628'), 5628)

        # Invalid values
        self.failUnlessRaises(ExifValueError, tag._convert_to_python, 'abc')
        self.failUnlessRaises(ExifValueError, tag._convert_to_python, '5,64')
        self.failUnlessRaises(ExifValueError, tag._convert_to_python,
                              '47.0001')
        self.failUnlessRaises(ExifValueError, tag._convert_to_python, '1E3')
Exemple #16
0
 def test_convert_to_python_comment(self):
     # Valid values
     tag = ExifTag('Exif.Photo.UserComment')
     self.assertEqual(tag.type, 'Comment')
     self.assertEqual(tag._convert_to_python('A comment'), 'A comment')
     for charset in ('Ascii', 'Jis', 'Unicode', 'Undefined',
                     'InvalidCharsetId'):
         self.assertEqual(
             tag._convert_to_python('charset="%s" A comment' % charset),
             'A comment')
     for charset in ('Ascii', 'Jis', 'Undefined', 'InvalidCharsetId'):
         self.failIfEqual(
             tag._convert_to_bytes('charset="%s" déjà vu' % charset),
             'déjà vu')
Exemple #17
0
    def test_convert_to_python_slong(self):
        # Valid values
        tag = ExifTag('Exif.OlympusCs.ManometerReading')
        self.assertEqual(tag.type, 'SLong')
        self.assertEqual(tag._convert_to_python('23'), 23)
        self.assertEqual(tag._convert_to_python('+5628'), 5628)
        self.assertEqual(tag._convert_to_python('-437'), -437)

        # Invalid values
        self.failUnlessRaises(ExifValueError, tag._convert_to_python, 'abc')
        self.failUnlessRaises(ExifValueError, tag._convert_to_python, '5,64')
        self.failUnlessRaises(ExifValueError, tag._convert_to_python,
                              '47.0001')
        self.failUnlessRaises(ExifValueError, tag._convert_to_python, '1E3')
Exemple #18
0
    def test_convert_to_python_ascii(self):
        # Valid values: datetimes
        tag = ExifTag("Exif.Image.DateTime")
        self.assertEqual(tag.type, "Ascii")
        self.assertEqual(tag._convert_to_python("2009-03-01 12:46:51"), datetime.datetime(2009, 03, 01, 12, 46, 51))
        self.assertEqual(tag._convert_to_python("2009:03:01 12:46:51"), datetime.datetime(2009, 03, 01, 12, 46, 51))
        self.assertEqual(tag._convert_to_python("2009-03-01T12:46:51Z"), datetime.datetime(2009, 03, 01, 12, 46, 51))

        # Valid values: dates
        tag = ExifTag("Exif.GPSInfo.GPSDateStamp")
        self.assertEqual(tag.type, "Ascii")
        self.assertEqual(tag._convert_to_python("2009:08:04"), datetime.date(2009, 8, 4))

        # Valid values: strings
        tag = ExifTag("Exif.Image.Copyright")
        self.assertEqual(tag.type, "Ascii")
        self.assertEqual(tag._convert_to_python("Some text."), "Some text.")
        self.assertEqual(
            tag._convert_to_python(u"Some text with exotic chàräctérʐ."), u"Some text with exotic chàräctérʐ."
        )

        # Invalid values: datetimes
        tag = ExifTag("Exif.Image.DateTime")
        self.assertEqual(tag.type, "Ascii")
        self.assertEqual(tag._convert_to_python("2009-13-01 12:46:51"), "2009-13-01 12:46:51")
        self.assertEqual(tag._convert_to_python("2009-12-01"), "2009-12-01")

        # Invalid values: dates
        tag = ExifTag("Exif.GPSInfo.GPSDateStamp")
        self.assertEqual(tag.type, "Ascii")
        self.assertEqual(tag._convert_to_python("2009:13:01"), "2009:13:01")
        self.assertEqual(tag._convert_to_python("2009-12-01"), "2009-12-01")
Exemple #19
0
    def test_convert_to_python_sshort(self):
        # Valid values
        tag = ExifTag('Exif.Image.TimeZoneOffset')
        self.assertEqual(tag.type, 'SShort')
        self.assertEqual(tag._convert_to_python('8'), 8)
        self.assertEqual(tag._convert_to_python('+5'), 5)
        self.assertEqual(tag._convert_to_python('-6'), -6)

        # Invalid values
        self.failUnlessRaises(ExifValueError, tag._convert_to_python, 'abc')
        self.failUnlessRaises(ExifValueError, tag._convert_to_python, '5,64')
        self.failUnlessRaises(ExifValueError, tag._convert_to_python,
                              '47.0001')
        self.failUnlessRaises(ExifValueError, tag._convert_to_python, '1E3')
Exemple #20
0
    def test_convert_to_python_rational(self):
        # Valid values
        tag = ExifTag("Exif.Image.XResolution")
        self.assertEqual(tag.type, "Rational")
        self.assertEqual(tag._convert_to_python("5/3"), make_fraction(5, 3))

        # Invalid values
        self.failUnlessRaises(ExifValueError, tag._convert_to_python, "invalid")
        self.failUnlessRaises(ExifValueError, tag._convert_to_python, "-5/3")
        self.failUnlessRaises(ExifValueError, tag._convert_to_python, "5 / 3")
        self.failUnlessRaises(ExifValueError, tag._convert_to_python, "5/-3")
Exemple #21
0
    def test_convert_to_python_rational(self):
        # Valid values
        tag = ExifTag('Exif.Image.XResolution')
        self.assertEqual(tag.type, 'Rational')
        self.assertEqual(tag._convert_to_python('5/3'), make_fraction(5, 3))

        # Invalid values
        self.failUnlessRaises(ExifValueError, tag._convert_to_python, 'invalid')
        self.failUnlessRaises(ExifValueError, tag._convert_to_python, '-5/3')
        self.failUnlessRaises(ExifValueError, tag._convert_to_python, '5 / 3')
        self.failUnlessRaises(ExifValueError, tag._convert_to_python, '5/-3')
Exemple #22
0
    def test_convert_to_python_rational(self):
        # Valid values
        tag = ExifTag('Exif.Image.XResolution')
        self.assertEqual(tag.type, 'Rational')
        self.assertEqual(tag._convert_to_python('5/3'), make_fraction(5, 3))

        # Invalid values
        self.failUnlessRaises(ExifValueError, tag._convert_to_python,
                              'invalid')
        self.failUnlessRaises(ExifValueError, tag._convert_to_python, '-5/3')
        self.failUnlessRaises(ExifValueError, tag._convert_to_python, '5 / 3')
        self.failUnlessRaises(ExifValueError, tag._convert_to_python, '5/-3')
Exemple #23
0
    def test_convert_to_python_ascii(self):
        # Valid values: datetimes
        tag = ExifTag('Exif.Image.DateTime')
        self.assertEqual(tag.type, 'Ascii')
        self.assertEqual(tag._convert_to_python('2009-03-01 12:46:51'),
                         datetime.datetime(2009, 3, 1, 12, 46, 51))
        self.assertEqual(tag._convert_to_python('2009:03:01 12:46:51'),
                         datetime.datetime(2009, 3, 1, 12, 46, 51))
        self.assertEqual(tag._convert_to_python('2009-03-01T12:46:51Z'),
                         datetime.datetime(2009, 3, 1, 12, 46, 51))

        # Valid values: dates
        tag = ExifTag('Exif.GPSInfo.GPSDateStamp')
        self.assertEqual(tag.type, 'Ascii')
        self.assertEqual(tag._convert_to_python('2009:08:04'),
                         datetime.date(2009, 8, 4))

        # Valid values: strings
        tag = ExifTag('Exif.Image.Copyright')
        self.assertEqual(tag.type, 'Ascii')
        self.assertEqual(tag._convert_to_python('Some text.'), 'Some text.')
        self.assertEqual(
            tag._convert_to_python('Some text with exotic chàräctérʐ.'),
            'Some text with exotic chàräctérʐ.')

        # Invalid values: datetimes
        tag = ExifTag('Exif.Image.DateTime')
        self.assertEqual(tag.type, 'Ascii')
        self.assertEqual(tag._convert_to_python('2009-13-01 12:46:51'),
                         '2009-13-01 12:46:51')
        self.assertEqual(tag._convert_to_python('2009-12-01'), '2009-12-01')

        # Invalid values: dates
        tag = ExifTag('Exif.GPSInfo.GPSDateStamp')
        self.assertEqual(tag.type, 'Ascii')
        self.assertEqual(tag._convert_to_python('2009:13:01'), '2009:13:01')
        self.assertEqual(tag._convert_to_python('2009-12-01'), '2009-12-01')
Exemple #24
0
    def test_convert_to_python_ascii(self):
        # Valid values: datetimes
        tag = ExifTag('Exif.Image.DateTime')
        self.assertEqual(tag.type, 'Ascii')
        self.assertEqual(tag._convert_to_python('2009-03-01 12:46:51'),
                         datetime.datetime(2009, 03, 01, 12, 46, 51))
        self.assertEqual(tag._convert_to_python('2009:03:01 12:46:51'),
                         datetime.datetime(2009, 03, 01, 12, 46, 51))
        self.assertEqual(tag._convert_to_python('2009-03-01T12:46:51Z'),
                         datetime.datetime(2009, 03, 01, 12, 46, 51))

        # Valid values: dates
        tag = ExifTag('Exif.GPSInfo.GPSDateStamp')
        self.assertEqual(tag.type, 'Ascii')
        self.assertEqual(tag._convert_to_python('2009:08:04'),
                         datetime.date(2009, 8, 4))

        # Valid values: strings
        tag = ExifTag('Exif.Image.Copyright')
        self.assertEqual(tag.type, 'Ascii')
        self.assertEqual(tag._convert_to_python('Some text.'), 'Some text.')
        self.assertEqual(tag._convert_to_python(u'Some text with exotic chàräctérʐ.'),
                         u'Some text with exotic chàräctérʐ.')

        # Invalid values: datetimes
        tag = ExifTag('Exif.Image.DateTime')
        self.assertEqual(tag.type, 'Ascii')
        self.assertEqual(tag._convert_to_python('2009-13-01 12:46:51'),
                         '2009-13-01 12:46:51')
        self.assertEqual(tag._convert_to_python('2009-12-01'), '2009-12-01')

        # Invalid values: dates
        tag = ExifTag('Exif.GPSInfo.GPSDateStamp')
        self.assertEqual(tag.type, 'Ascii')
        self.assertEqual(tag._convert_to_python('2009:13:01'), '2009:13:01')
        self.assertEqual(tag._convert_to_python('2009-12-01'), '2009-12-01')
Exemple #25
0
 def test_convert_to_python_undefined(self):
     # Valid values
     tag = ExifTag("Exif.Photo.ExifVersion")
     self.assertEqual(tag.type, "Undefined")
     self.assertEqual(tag._convert_to_python("48 49 48 48"), "0100")
Exemple #26
0
 def test_convert_to_python_undefined(self):
     # Valid values
     tag = ExifTag('Exif.Photo.ExifVersion')
     self.assertEqual(tag.type, 'Undefined')
     self.assertEqual(tag._convert_to_python('48 49 48 48'), '0100')
Exemple #27
0
 def test_convert_to_python_byte(self):
     # Valid values
     tag = ExifTag('Exif.GPSInfo.GPSVersionID')
     self.assertEqual(tag.type, 'Byte')
     self.assertEqual(tag._convert_to_python('D'), 'D')
Exemple #28
0
 def test_convert_to_python_sbyte(self):
     # Valid values
     tag = ExifTag('Exif.Pentax.Temperature')
     self.assertEqual(tag.type, 'SByte')
     self.assertEqual(tag._convert_to_python('15'), '15')
Exemple #29
0
 def test_convert_to_python_sbyte(self):
     # Valid values
     tag = ExifTag('Exif.Pentax.Temperature')
     self.assertEqual(tag.type, 'SByte')
     self.assertEqual(tag._convert_to_python('15'), '15')
Exemple #30
0
 def test_convert_to_python_sbyte(self):
     # Valid values
     tag = ExifTag("Exif.Pentax.Temperature")
     self.assertEqual(tag.type, "SByte")
     self.assertEqual(tag._convert_to_python("15"), "15")
Exemple #31
0
 def test_convert_to_python_undefined(self):
     # Valid values
     tag = ExifTag('Exif.Photo.ExifVersion')
     self.assertEqual(tag.type, 'Undefined')
     self.assertEqual(tag._convert_to_python('48 49 48 48'), '0100')
Exemple #32
0
 def test_convert_to_python_byte(self):
     # Valid values
     tag = ExifTag("Exif.GPSInfo.GPSVersionID")
     self.assertEqual(tag.type, "Byte")
     self.assertEqual(tag._convert_to_python("D"), "D")
Exemple #33
0
 def test_convert_to_python_byte(self):
     # Valid values
     tag = ExifTag('Exif.GPSInfo.GPSVersionID')
     self.assertEqual(tag.type, 'Byte')
     self.assertEqual(tag._convert_to_python('D'), 'D')