aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorOlivier Tilloy <olivier@tilloy.net>2010-05-26 14:54:40 +0200
committerOlivier Tilloy <olivier@tilloy.net>2010-05-26 14:54:40 +0200
commitaff0f1577e24176bb2dec7afc8f05552708e0dc0 (patch)
tree8bc736e654d9618c6b9169cc2e2c040e9c84eb07 /test
parentf96572db9fabcde9874398fa9964ac6a8290fad7 (diff)
downloadpyexiv2-aff0f1577e24176bb2dec7afc8f05552708e0dc0.tar.gz
Optionnally preserve the file's timestamp when writing back metadata.
Diffstat (limited to 'test')
-rw-r--r--test/metadata.py39
1 files changed, 39 insertions, 0 deletions
diff --git a/test/metadata.py b/test/metadata.py
index 98be0be..7abcb6e 100644
--- a/test/metadata.py
+++ b/test/metadata.py
@@ -33,6 +33,7 @@ from pyexiv2.utils import FixedOffset, Rational
import datetime
import os
import tempfile
+import time
import unittest
@@ -91,6 +92,44 @@ class TestImageMetadata(unittest.TestCase):
metadata = ImageMetadata('idontexist')
self.failUnlessRaises(IOError, metadata.read)
+ def test_write_preserve_timestamps(self):
+ stat = os.stat(self.pathname)
+ atime = stat.st_atime
+ mtime = stat.st_mtime
+ metadata = ImageMetadata(self.pathname)
+ metadata.read()
+ metadata.comment = 'Yellow Submarine'
+ time.sleep(1.1)
+ metadata.write(preserve_timestamps=True)
+ stat2 = os.stat(self.pathname)
+ atime2 = stat2.st_atime
+ mtime2 = stat2.st_atime
+ self.failUnlessEqual(atime2, atime)
+ self.failUnlessEqual(mtime2, mtime)
+
+ def test_write_dont_preserve_timestamps(self):
+ stat = os.stat(self.pathname)
+ atime = stat.st_atime
+ mtime = stat.st_mtime
+ metadata = ImageMetadata(self.pathname)
+ metadata.read()
+ metadata.comment = 'Yellow Submarine'
+ time.sleep(1.1)
+ metadata.write()
+ stat2 = os.stat(self.pathname)
+ atime2 = stat2.st_atime
+ mtime2 = stat2.st_atime
+ self.failIfEqual(atime2, atime)
+ self.failIfEqual(mtime2, mtime)
+ metadata.comment = 'Yesterday'
+ time.sleep(1.1)
+ metadata.write(preserve_timestamps=True)
+ stat3 = os.stat(self.pathname)
+ atime3 = stat3.st_atime
+ mtime3 = stat3.st_atime
+ self.failUnlessEqual(atime3, atime2)
+ self.failUnlessEqual(mtime3, mtime2)
+
###########################
# Test EXIF-related methods
###########################