beets/test/plugins/test_missing.py
2026-01-06 00:51:50 +00:00

61 lines
1.6 KiB
Python

import uuid
import pytest
from beets.library import Album
from beets.test.helper import PluginMixin, TestHelper
@pytest.fixture
def helper():
helper = TestHelper()
helper.setup_beets()
yield helper
helper.teardown_beets()
class TestMissingAlbums(PluginMixin):
plugin = "missing"
album_in_lib = Album(
album="Album",
albumartist="Artist",
mb_albumartistid=str(uuid.uuid4()),
mb_albumid="album",
)
@pytest.mark.parametrize(
"release_from_mb,expected_output",
[
pytest.param(
{"id": "other", "title": "Other Album"},
"Artist - Other Album\n",
id="missing",
),
pytest.param(
{"id": album_in_lib.mb_albumid, "title": album_in_lib.album},
"",
marks=pytest.mark.xfail(
reason=(
"Album in lib must not be reported as missing."
" Needs fixing."
)
),
id="not missing",
),
],
)
def test_missing_artist_albums(
self, requests_mock, helper, release_from_mb, expected_output
):
helper.lib.add(self.album_in_lib)
requests_mock.get(
f"/ws/2/release-group?artist={self.album_in_lib.mb_albumartistid}",
json={"release-groups": [release_from_mb]},
)
with self.configure_plugin({}):
assert (
helper.run_with_output("missing", "--album") == expected_output
)