# -*- coding: utf-8 -*-
import unittest
import os.path
import shutil
import system_tests
RESOURCE_FORK_EXISTS = os.path.exists(
os.path.join(system_tests.data_path, "exiv2-bug836.eps/..namedfork/rsrc")
)
@unittest.skipUnless(RESOURCE_FORK_EXISTS,
"File system does not support resource forks")
@system_tests.CopyFiles("$data_path/exiv2-bug836.eps")
class WriteMetadataDestroysResourceForkOnMacOSXForBigFiles(
metaclass=system_tests.CaseMeta):
url = "http://dev.exiv2.org/issues/836"
filename = "$data_path/exiv2-bug836_copy.eps"
filename_orig = "$data_path/exiv2-bug836.eps"
commands = [
"$exiv2 -M'set Exif.Photo.UserComment Test' $filename",
]
def setUp(self):
""" Copy the rsrc file into the the resource fork """
shutil.copyfile(
self.filename_orig + ".rsrc", self.filename + "/..namedfork/rsrc"
)
def post_tests_hook(self):
""" Check that the resource fork didn't change """
with open(self.filename_orig + ".rsrc", "rb") as rsrc_orig:
expected_resource_fork = rsrc_orig.read(-1)
with open(self.filename + "/..namedfork/rsrc", "rb") as rsrc_f:
got_resource_fork = rsrc_f.read(-1)
self.assertEqual(expected_resource_fork, got_resource_fork)
stdout = [""]
stderr = [""]
retval = [0]