1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
|
# -*- Mode: Python; py-indent-offset: 4 -*-
# vim: tabstop=4 shiftwidth=4 expandtab
#
# Copyright (C) 2014 Alexandre Rossi <alexandre.rossi@gmail.com>
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
# USA
import unittest
import os
import gi.overrides
gi.overrides.__path__.insert(0, os.path.join(os.path.dirname(__file__), '..', '..'))
from gi.repository import GExiv2
SAMPLES_DIR = os.getenv('TEST_DATA_DIR', default = os.path.join(os.path.dirname(__file__), '..', 'data'))
class TestGexiv2(unittest.TestCase):
def get_sample_path(self, sample):
return os.path.join(SAMPLES_DIR, sample)
def test_author_badencoding(self):
sample = 'sample-author-badencoding.jpg'
md = GExiv2.Metadata()
md.open_path(self.get_sample_path(sample))
self.assertEqual(md.get_raw('Exif.Image.Artist'), b'\xc0\xeb\xe5\xea\xf1\xe0\xed\xe4\xf0 \xca\xee\xf8\xe5\xeb\xe5\xe2\x00')
def test_gps_coordinates(self):
sample = 'CaorVN.jpeg'
md = GExiv2.Metadata()
md.open_path(self.get_sample_path(sample))
(lo, la, alt) = md.get_gps_info()
self.assertAlmostEqual(lo, -1.508425)
self.assertAlmostEqual(la, 48.631806166666664)
self.assertAlmostEqual(alt, -0.926000)
def test_xmp_packet_formatting(self):
sample = 'CaorVN.jpeg'
md = GExiv2.Metadata()
md.open_path(self.get_sample_path(sample))
packet = md.try_generate_xmp_packet(GExiv2.XmpFormatFlags.OMIT_PACKET_WRAPPER, 0);
self.assertEqual(packet.startswith("<?xpacket"), False)
if __name__ == '__main__':
unittest.main()
|