fixing bug in diff engine making it fail when a directory is removed
authorEduardo Robles Elvira <edulix@wadobo.com>
Thu, 8 Aug 2013 08:07:35 +0000 (10:07 +0200)
committerEduardo Robles Elvira <edulix@wadobo.com>
Thu, 8 Aug 2013 08:07:35 +0000 (10:07 +0200)
deltatar/deltatar.py
testing/test_deltatar.py

index 3bb8487..2b37bd9 100644 (file)
@@ -318,6 +318,10 @@ class DeltaTar(object):
         while queue:
             cur_path = queue.pop()
 
+            # it might have been removed in the mean time
+            if not os.path.exists(cur_path):
+                continue
+
             for child in walk_dir(cur_path):
                 is_dir = os.path.isdir(child)
                 status = self.filter_path(child, source_path, is_dir)
index eb9d840..8c45314 100644 (file)
@@ -1018,6 +1018,7 @@ class DeltaTarTest(BaseTest):
         self.hash["source_dir/bigdir/a"] = self.create_file("source_dir/bigdir/a", 100)
         self.hash["source_dir/bigdir/b"] = self.create_file("source_dir/bigdir/b", 500)
         self.hash["source_dir/zzzz"]  = self.create_file("source_dir/zzzz", 100)
+        shutil.rmtree("source_dir/test")
 
         deltatar.create_diff_backup("source_dir", "backup_dir2",
                                     prev_index_path)