Example #1
0
 def _save_and_rename(self, old_filename, metadata):
     """Save the metadata."""
     # Check that file has not been removed since thread was queued
     # Also don't save if we are stopping.
     if self.state == File.REMOVED:
         log.debug("File not saved because it was removed: %r",
                   self.filename)
         return None
     if self.tagger.stopping:
         log.debug("File not saved because %s is stopping: %r",
                   PICARD_APP_NAME, self.filename)
         return None
     new_filename = old_filename
     if not config.setting["dont_write_tags"]:
         save = partial(self._save, old_filename, metadata)
         if config.setting["preserve_timestamps"]:
             try:
                 self._preserve_times(old_filename, save)
             except self.PreserveTimesStatError as why:
                 log.warning(why)
                 # we didn't save the file yet, bail out
                 return None
             except self.FilePreserveTimesUtimeError as why:
                 log.warning(why)
         else:
             save()
     # Rename files
     if config.setting["rename_files"] or config.setting["move_files"]:
         new_filename = self._rename(old_filename, metadata)
     # Move extra files (images, playlists, etc.)
     if config.setting["move_files"] and config.setting[
             "move_additional_files"]:
         self._move_additional_files(old_filename, new_filename)
     # Delete empty directories
     if config.setting["delete_empty_dirs"]:
         dirname = os.path.dirname(old_filename)
         try:
             emptydir.rm_empty_dir(dirname)
             head, tail = os.path.split(dirname)
             if not tail:
                 head, tail = os.path.split(head)
             while head and tail:
                 emptydir.rm_empty_dir(head)
                 head, tail = os.path.split(head)
         except OSError as why:
             log.warning("Error removing directory: %s", why)
         except emptydir.SkipRemoveDir as why:
             log.debug("Not removing empty directory: %s", why)
     # Save cover art images
     if config.setting["save_images_to_files"]:
         self._save_images(os.path.dirname(new_filename), metadata)
     return new_filename
Example #2
0
 def test_rm_empty_dir_only_junk_files(self):
     dir = _create_temp_dir(extra_files=emptydir.JUNK_FILES)
     self.assertTrue(os.path.isdir(dir))
     emptydir.rm_empty_dir(dir)
     self.assertFalse(os.path.exists(dir))
Example #3
0
 def test_rm_empty_dir_really_empty(self):
     dir = _create_temp_dir()
     self.assertTrue(os.path.isdir(dir))
     emptydir.rm_empty_dir(dir)
     self.assertFalse(os.path.exists(dir))
Example #4
0
 def test_rm_empty_dir_only_junk_files(self):
     tempdir = self.create_temp_dir(extra_files=emptydir.JUNK_FILES,
                                    ignore_errors=True)
     self.assertTrue(os.path.isdir(tempdir))
     emptydir.rm_empty_dir(tempdir)
     self.assertFalse(os.path.exists(tempdir))
Example #5
0
 def test_rm_empty_dir_really_empty(self):
     tempdir = self.create_temp_dir(ignore_errors=True)
     self.assertTrue(os.path.isdir(tempdir))
     emptydir.rm_empty_dir(tempdir)
     self.assertFalse(os.path.exists(tempdir))