diff --git a/beetsplug/mbpseudo.py b/beetsplug/mbpseudo.py index 0a4e304f2..b5b4f4f8d 100644 --- a/beetsplug/mbpseudo.py +++ b/beetsplug/mbpseudo.py @@ -118,7 +118,7 @@ class MusicBrainzPseudoReleasePlugin(MusicBrainzPlugin): self, items: Iterable[Item], album_info: AlbumInfo, - ): + ) -> AlbumInfo: if isinstance(album_info, PseudoAlbumInfo): for item in items: # particularly relevant for reimport but could also happen during import @@ -177,7 +177,11 @@ class MusicBrainzPseudoReleasePlugin(MusicBrainzPlugin): official_release = super().album_info(release) if release.get("status") == _STATUS_PSEUDO: - return official_release + # already pseudo-release, but wrap in our class for the other checks + return PseudoAlbumInfo( + pseudo_release=official_release, + official_release=official_release, + ) elif pseudo_release_ids := self._intercept_mb_release(release): custom_tags_only = self.config["custom_tags_only"].get(bool) languages = list(config["import"]["languages"].as_str_seq()) @@ -387,7 +391,7 @@ class PseudoAlbumInfo(AlbumInfo): **kwargs, ): super().__init__(pseudo_release.tracks, **kwargs) - self.__dict__["_pseudo_source"] = True + self.__dict__["_pseudo_source"] = False self.__dict__["_official_release"] = official_release for k, v in pseudo_release.items(): if k not in kwargs: diff --git a/test/plugins/test_mbpseudo.py b/test/plugins/test_mbpseudo.py index 316d2e3c7..882e1cd6b 100644 --- a/test/plugins/test_mbpseudo.py +++ b/test/plugins/test_mbpseudo.py @@ -164,7 +164,7 @@ class TestMBPseudoPlugin(PluginMixin): pseudo_release: JSONDict, ): album_info = mbpseudo_plugin.album_info(pseudo_release["release"]) - assert not isinstance(album_info, PseudoAlbumInfo) + assert isinstance(album_info, PseudoAlbumInfo) assert album_info.data_source == "MusicBrainzPseudoRelease" assert album_info.albumstatus == _STATUS_PSEUDO