From aff0f1577e24176bb2dec7afc8f05552708e0dc0 Mon Sep 17 00:00:00 2001 From: Olivier Tilloy Date: Wed, 26 May 2010 14:54:40 +0200 Subject: Optionnally preserve the file's timestamp when writing back metadata. --- test/metadata.py | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) (limited to 'test') 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 ########################### -- cgit