import datetime
 import binascii
 import os
+import shutil
 import re
 import stat
 import json
             os.chdir(target_path)
 
             def filter(cls, tarinfo):
-                tarinfo.path = self.unprefixed(tarinfo.path)
-                tarinfo.name = self.unprefixed(tarinfo.name)
-                return cls.filter_path(tarinfo.path, '.', tarinfo.isdir()) != NO_MATCH
+                if tarinfo.path.startswith("snapshot://"):
+                    tarinfo.path = self.unprefixed(tarinfo.path)
+                    tarinfo.name = self.unprefixed(tarinfo.name)
+                    return cls.filter_path(tarinfo.path, '.', tarinfo.isdir()) != NO_MATCH
+                elif tarinfo.path.startswith("delete://"):
+                    path = self.unprefixed(tarinfo.path)
+                    shutil.rmtree(path)
+                    return False
+                else:
+                    return False
             filter = partial(filter, self)
 
             tarobj.extractall(filter=filter)
 
         # check index items
         index_path = os.path.join("backup_dir2", prev_index_filename)
         index_it = deltatar.iterate_index_path(index_path)
+        n = 0
         for i in index_it:
+            n += 1
             assert i[0]['path'].startswith("list://")
 
-        tar_filename = deltatar.volume_name_func('backup_dir', True, 0)
-        tar_path = os.path.join("backup_dir", tar_filename)
+        assert n == 7
 
         # check the tar file
+        assert os.path.exists("backup_dir2")
+        shutil.rmtree("source_dir")
+
+        tar_filename = deltatar.volume_name_func('backup_dir2', True, 0)
+        tar_path = os.path.join("backup_dir2", tar_filename)
+
+        # no file restored, because the diff was empty
+        deltatar.restore_backup(target_path="source_dir",
+                                backup_tar_path=tar_path)
+        assert len(os.listdir("source_dir")) == 0
+
 
 class DeltaTar2Test(DeltaTarTest):
     '''