import os
import shutil
import stat
+import sys
+import unittest
from functools import partial
PASSWORD = TEST_PASSWORD
+@unittest.skipIf(sys.version_info < (3, 4), "requires recent os library")
class RecoverCorruptHoleBaseTest (RecoverTest):
"""
Cut bytes from the middle of a volume.
VOLUMES = 2 # request two vols to swell up the first one
MISMATCHES = 1
+@unittest.skipIf(sys.version_info < (3, 4), "requires recent os library")
class RecoverCorruptHoleTest (RecoverCorruptHoleBaseTest):
FAILURES = 2
+@unittest.skipIf(sys.version_info < (3, 4), "requires recent os library")
class RecoverCorruptHoleGZTest (RecoverCorruptHoleBaseTest):
COMPRESSION = "#gz"
MISSING = 2
+@unittest.skipIf(sys.version_info < (3, 4), "requires recent os library")
class RecoverCorruptHoleGZAESTest (RecoverCorruptHoleBaseTest):
COMPRESSION = "#gz"
PASSWORD = TEST_PASSWORD
# rescue
###############################################################################
+@unittest.skipIf(sys.version_info < (3, 4), "requires recent os library")
class RescueCorruptHoleBaseTest (RescueTest):
"""
Cut bytes from the middle of a volume.
MISMATCHES = 2 # intersected by hole
MISSING = 1 # excised by hole
+@unittest.skipIf(sys.version_info < (3, 4), "requires recent os library")
class RescueCorruptHoleTest (RescueCorruptHoleBaseTest):
pass
+@unittest.skipIf(sys.version_info < (3, 4), "requires recent os library")
class RescueCorruptHoleGZTest (RescueCorruptHoleBaseTest):
COMPRESSION = "#gz"
# the decompressor explodes in our face processing the first dummy, nothing
# we can do to recover
FAILURES = 1
+@unittest.skipIf(sys.version_info < (3, 4), "requires recent os library")
class RescueCorruptHoleGZAESTest (RescueCorruptHoleBaseTest):
COMPRESSION = "#gz"
PASSWORD = TEST_PASSWORD
MISMATCHES = 0
+@unittest.skipIf(sys.version_info < (3, 4), "requires recent os library")
class RescueCorruptLeadingGarbageTestBase (RescueTest):
# plain Tar is indifferent against traling data and the results
# are consistent
CORRUPT = corrupt_leading_garbage
MISMATCHES = 0
+@unittest.skipIf(sys.version_info < (3, 4), "requires recent os library")
class RescueCorruptLeadingGarbageSingleTest (RescueCorruptLeadingGarbageTestBase):
VOLUMES = 1
+@unittest.skipIf(sys.version_info < (3, 4), "requires recent os library")
class RescueCorruptLeadingGarbageMultiTest (RescueCorruptLeadingGarbageTestBase):
# the last object in first archive has extra bytes somewhere in the
# middle because tar itself performs no data checksumming.