Skip to content

Commit 13f8f08

Browse files
committed
Do not force load musicbrainz, add a test to show the behaviour
1 parent c3e9008 commit 13f8f08

File tree

3 files changed

+43
-10
lines changed

3 files changed

+43
-10
lines changed

beets/config_default.yaml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,7 @@ statefile: state.pickle
66

77
# --------------- Plugins ---------------
88

9-
plugins: []
10-
disabled_plugins: []
9+
plugins: [musicbrainz]
1110

1211
pluginpath: []
1312

beets/plugins.py

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -416,20 +416,18 @@ def get_plugin_names() -> list[str]:
416416
plugins = unique_list(beets.config["plugins"].as_str_seq())
417417
disabled_plugins = set(beets.config["disabled_plugins"].as_str_seq())
418418
# TODO: Remove in v3.0.0
419-
if "musicbrainz" not in plugins and "musicbrainz" not in disabled_plugins:
419+
mb_enabled = beets.config["musicbrainz"].flatten().get("enabled")
420+
if mb_enabled:
420421
deprecate_for_user(
421422
log,
422-
"Automatic loading of 'musicbrainz' plugin",
423+
"'musicbrainz.enabled' configuration option",
423424
"'plugins' configuration to explicitly add 'musicbrainz'",
424425
)
425-
426-
enabled = beets.config["musicbrainz"].flatten().get("enabled")
427-
if enabled is not None:
426+
if "musicbrainz" not in plugins:
427+
plugins.append("musicbrainz")
428+
elif mb_enabled is False:
428429
deprecate_for_user(log, "'musicbrainz.enabled' configuration option")
429-
if enabled is False:
430430
disabled_plugins.add("musicbrainz")
431-
else:
432-
plugins.append("musicbrainz")
433431

434432
return [p for p in plugins if p not in disabled_plugins]
435433

test/test_plugins.py

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -543,3 +543,39 @@ class LegacyMetadataPlugin(plugins.BeetsPlugin):
543543
assert hasattr(LegacyMetadataPlugin, "data_source_mismatch_penalty")
544544
assert hasattr(LegacyMetadataPlugin, "_extract_id")
545545
assert hasattr(LegacyMetadataPlugin, "get_artist")
546+
547+
548+
class TestMusicBrainzPluginLoading:
549+
@pytest.fixture(autouse=True)
550+
def config(self):
551+
_config = config
552+
_config.sources = []
553+
_config.read(user=False, defaults=True)
554+
return _config
555+
556+
def test_default(self):
557+
assert "musicbrainz" in plugins.get_plugin_names()
558+
559+
def test_other_plugin_enabled(self, config):
560+
config["plugins"] = ["anything"]
561+
562+
assert "musicbrainz" not in plugins.get_plugin_names()
563+
564+
def test_deprecated_enabled(self, config, caplog):
565+
config["plugins"] = ["anything"]
566+
config["musicbrainz"]["enabled"] = True
567+
568+
assert "musicbrainz" in plugins.get_plugin_names()
569+
assert (
570+
"musicbrainz.enabled' configuration option is deprecated"
571+
in caplog.text
572+
)
573+
574+
def test_deprecated_disabled(self, config, caplog):
575+
config["musicbrainz"]["enabled"] = False
576+
577+
assert "musicbrainz" not in plugins.get_plugin_names()
578+
assert (
579+
"musicbrainz.enabled' configuration option is deprecated"
580+
in caplog.text
581+
)

0 commit comments

Comments
 (0)