diff --git a/beetsplug/_utils/art.py b/beetsplug/_utils/art.py index 656c303ce..264802ba5 100644 --- a/beetsplug/_utils/art.py +++ b/beetsplug/_utils/art.py @@ -210,5 +210,8 @@ def clear(log, lib, query): items = lib.items(query) log.info("Clearing album art from {} items", len(items)) for item in items: - log.debug("Clearing art for {}", item) - item.try_write(tags={"images": None}) + if mediafile.MediaFile(syspath(item.path)).images: + log.debug("Clearing art for {}", item) + item.try_write(tags={"images": None}) + else: + log.debug("No art to clean for {}", item) diff --git a/beetsplug/embedart.py b/beetsplug/embedart.py index cbf40f570..ab02f13b5 100644 --- a/beetsplug/embedart.py +++ b/beetsplug/embedart.py @@ -17,6 +17,7 @@ import os.path import tempfile from mimetypes import guess_extension +from unittest import mock import requests diff --git a/test/plugins/test_embedart.py b/test/plugins/test_embedart.py index d40025374..3b07a6a72 100644 --- a/test/plugins/test_embedart.py +++ b/test/plugins/test_embedart.py @@ -17,6 +17,7 @@ import os import os.path import shutil import tempfile +import time import unittest from unittest.mock import MagicMock, patch @@ -225,10 +226,22 @@ class EmbedartCliTest(IOMixin, PluginMixin, FetchImageHelper, BeetsTestCase): item = album.items()[0] self.io.addinput("y") self.run_command("embedart", "-f", self.small_artpath) + embedded_time = item.current_mtime() + time.sleep(1) + self.io.addinput("y") self.run_command("clearart") mediafile = MediaFile(syspath(item.path)) assert not mediafile.images + clear_time = item.current_mtime() + assert clear_time > embedded_time + time.sleep(1) + + # A run on a file without an image should not be modified + self.io.addinput("y") + self.run_command("clearart") + no_clear_time = item.current_mtime() + assert no_clear_time == clear_time def test_clear_art_with_no_input(self): self._setup_data()