From: Philipp Gesang Date: Fri, 25 Aug 2017 15:41:21 +0000 (+0200) Subject: use real new volume handler during rescue X-Git-Tag: v2.2~7^2~44 X-Git-Url: http://developer.intra2net.com/git/?a=commitdiff_plain;h=001bd4884d529504e952791132f6f8afd4a65bd0;p=python-delta-tar use real new volume handler during rescue With the dummy we end up with a nil object instead of a tarinfo at the end of the volume. Reinstating the actual handler is harmless and produces a valid info object again. --- diff --git a/deltatar/deltatar.py b/deltatar/deltatar.py index f5c39f0..221b7b3 100644 --- a/deltatar/deltatar.py +++ b/deltatar/deltatar.py @@ -1633,8 +1633,7 @@ class RestoreHelper(object): self.canchown = False if isinstance (backup_index, list) is True: - def dummy_volume_handler (*_a, **_kwa): - pass + decryptor = self._deltatar.decryptor self._data = \ [{ "curr_vol_no" : None , "vol_fd" : None @@ -1645,8 +1644,11 @@ class RestoreHelper(object): , "iterator" : None , "last_itelement" : None , "last_lno" : 0 - , "new_volume_handler" : dummy_volume_handler - , "decryptor" : self._deltatar.decryptor + , "new_volume_handler" : + partial(self.new_volume_handler, + self._deltatar, self._cwd, True, + os.path.dirname(backup_path), decryptor) + , "decryptor" : decryptor }] elif index_list is not None: for index in index_list: diff --git a/testing/test_recover.py b/testing/test_recover.py index 817c719..7c26504 100644 --- a/testing/test_recover.py +++ b/testing/test_recover.py @@ -746,7 +746,9 @@ class RescueCorruptHoleBaseTest (RescueTest): MISMATCHES = 1 class RescueCorruptHoleTest (RescueCorruptHoleBaseTest): - FAILURES = 2 + FAILURES = 0 + MISMATCHES = 1 # intersected by hole + MISSING = 1 # excised by hole class RescueCorruptHoleGZTest (RescueCorruptHoleBaseTest): COMPRESSION = "#gz"