[gexiv2] build: Fix running tests out-of-tree
- From: Jens Georg <jensgeorg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gexiv2] build: Fix running tests out-of-tree
- Date: Fri, 12 May 2017 19:20:19 +0000 (UTC)
commit 88d159bae728b26ff430d4ed8b8a3d0fd821250a
Author: Jens Georg <mail jensge org>
Date: Fri May 12 21:07:21 2017 +0200
build: Fix running tests out-of-tree
Makefile.am | 7 +++++--
check.am | 3 ++-
test/python/gexiv2.py | 2 +-
test/python/test_metadata.py | 30 +++++++++++++++++++++---------
4 files changed, 29 insertions(+), 13 deletions(-)
---
diff --git a/Makefile.am b/Makefile.am
index 2b8d22b..517b268 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -24,9 +24,12 @@ EXTRA_DIST = \
@PACKAGE_NAME@.vapi \
gexiv2/gexiv2-version.m4 \
$(TYPELIB_FILES) \
- test/sample-author-badencoding.jpg \
+ test/data/sample-author-badencoding.jpg \
+ test/data/original.jpg \
+ test/data/CaorVN.jpeg \
test/gexiv2-dump.vala \
- test/python/gexiv2.py
+ test/python/gexiv2.py \
+ test/python/test_metadata.py
# Installed Files #
diff --git a/check.am b/check.am
index 59196e4..df1dc79 100644
--- a/check.am
+++ b/check.am
@@ -4,7 +4,8 @@ TESTS_ENVIRONMENT = \
GI_TYPELIB_PATH=$(top_builddir) \
PYTHONPATH=$(top_srcdir)/test/python \
MALLOC_CHECK_=2 \
- MALLOC_PERTURB_=$$((RANDOM % 255))
+ MALLOC_PERTURB_=$$((RANDOM % 255)) \
+ TEST_DATA_DIR=$(srcdir)/test/data
tests: check
diff --git a/test/python/gexiv2.py b/test/python/gexiv2.py
index 2b25eba..c1d4940 100644
--- a/test/python/gexiv2.py
+++ b/test/python/gexiv2.py
@@ -36,7 +36,7 @@ gi.require_version('GExiv2', '0.10')
from gi.repository import GExiv2
-SAMPLES_DIR = os.path.join(os.path.dirname(__file__), '..', 'data')
+SAMPLES_DIR = os.getenv('TEST_DATA_DIR', default = os.path.join(os.path.dirname(__file__), '..', 'data'))
class TestGexiv2(unittest.TestCase):
diff --git a/test/python/test_metadata.py b/test/python/test_metadata.py
index eb8cadc..5f7589a 100644
--- a/test/python/test_metadata.py
+++ b/test/python/test_metadata.py
@@ -26,6 +26,7 @@ import sys
import errno
import shutil
import unittest
+import tempfile
PY3K = sys.version_info[0] == 3
@@ -38,17 +39,28 @@ from fractions import Fraction
class TestMetadata(unittest.TestCase):
maxDiff = None
+ DATADIR = os.getenv('TEST_DATA_DIR', default = os.path.join(os.path.dirname(__file__), '..', 'data'))
+
def setUp(self):
self.metadata = GExiv2.Metadata()
- self.metadata.open_path('test/data/original.jpg')
+ self.metadata.open_path(self.get_input_file())
+ self.output_dir = tempfile.mkdtemp()
+ self.output_file = os.path.join(self.output_dir, 'withgps.jpg')
def tearDown(self):
try:
- os.unlink('test/data/withgps.jpg')
+ os.remove(self.output_file)
+ os.rmdir(self.output_dir)
except Exception as e:
if e.errno != errno.ENOENT:
raise
+ def get_input_file(self):
+ return os.path.join(self.DATADIR, 'original.jpg')
+
+ def get_output_file(self):
+ return os.path.join(self.output_dir, self.output_file)
+
def test_presence_of_expected_methods(self):
metadata = GExiv2.Metadata()
methods = [m for m in dir(metadata) if not m.startswith('_')]
@@ -171,7 +183,7 @@ class TestMetadata(unittest.TestCase):
self.assertIn(method, methods)
def test_open_buf(self):
- with open('test/data/original.jpg', 'rb' if PY3K else 'r') as fd:
+ with open(self.get_input_file(), 'rb' if PY3K else 'r') as fd:
buf = fd.read()
metadata = GExiv2.Metadata()
metadata.open_buf(buf)
@@ -179,7 +191,7 @@ class TestMetadata(unittest.TestCase):
def test_open_path(self):
metadata = GExiv2.Metadata()
- metadata.open_path('test/data/original.jpg')
+ metadata.open_path(self.get_input_file())
self.assertEqual(len(metadata.get_exif_tags()), 112)
def test_get_tag_string(self):
@@ -609,12 +621,12 @@ generated the image. When the field is left blank, it is treated as unknown.""")
self.assertEqual(len(thumb), 4534)
def test_set_exif_thumbnail_from_file(self):
- self.metadata.set_exif_thumbnail_from_file('test/data/original.jpg')
+ self.metadata.set_exif_thumbnail_from_file(self.get_input_file())
thumb = self.metadata.get_exif_thumbnail()
self.assertEqual(len(thumb), 56080)
def test_set_exif_thumbnail_from_buffer(self):
- with open('test/data/original.jpg', 'rb' if PY3K else 'r') as fd:
+ with open(self.get_input_file(), 'rb' if PY3K else 'r') as fd:
buf = fd.read()
self.metadata.set_exif_thumbnail_from_buffer(buf)
thumb = self.metadata.get_exif_thumbnail()
@@ -740,12 +752,12 @@ generated the image. When the field is left blank, it is treated as unknown.""")
self.assertEqual(len(thumb.get_data()), nbytes.pop())
def test_save_file(self):
- shutil.copyfile('test/data/original.jpg', 'test/data/withgps.jpg')
+ shutil.copyfile(self.get_input_file(), self.get_output_file())
self.metadata.set_gps_info(12.5683371, 55.6760968, 42)
- self.metadata.save_file('test/data/withgps.jpg')
+ self.metadata.save_file(self.get_output_file())
newfile = GExiv2.Metadata()
- newfile.open_path('test/data/withgps.jpg')
+ newfile.open_path(self.get_output_file())
self.assertEqual(
[(tag, newfile.get_tag_string(tag))
for tag in newfile.get_exif_tags()
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]