From 9c8172be12fa13973f0f3ca8cd5f538ba0b1f38f Mon Sep 17 00:00:00 2001 From: Henry Oberholtzer Date: Fri, 26 Sep 2025 01:55:28 +0200 Subject: [PATCH] Write initial ANV test --- test/plugins/test_discogs.py | 97 ++++++++++++++++++++++++++++++++++++ 1 file changed, 97 insertions(+) diff --git a/test/plugins/test_discogs.py b/test/plugins/test_discogs.py index 3652c0a54..a93c0da0b 100644 --- a/test/plugins/test_discogs.py +++ b/test/plugins/test_discogs.py @@ -520,6 +520,103 @@ def test_get_media_and_albumtype(formats, expected_media, expected_albumtype): assert result == (expected_media, expected_albumtype) +@patch("beetsplug.discogs.DiscogsPlugin.setup", Mock()) +class DGTestAnv(BeetsTestCase): + @pytest.mark.parametrize( + "config_input, expected_output", + [ + ({ + "track_artist": False, + "album_artist": False, + "artist_credit": False + }, + { + "album_artist": "ARTIST NAME & SOLOIST" + "album_artist_credit": "ARTIST NAME & SOLOIST" + "track_arist": "ARTIST Feat. PERFORMER", + "track_artist_credit": "ARTIST Feat. PERFORMER" + }), + ({ + "album_artist": False, + "track_artist": True, + "artist_credit": False + }, + { + "album_artist": "ARTIST NAME & SOLOIST" + "album_artist_credit": "ARTIST NAME & SOLOIST" + "track_artist": "ARTY Feat. FORMER", + "track_artist_credit": "ARTIST Feat. PERFORMER" + }), + ({ + "album_artist": True, + "track_artist": False, + "artist_credit": False + }, + { + "album_artist": "ARTY & SOLO" + "album_artist_credit": "ARTIST NAME & SOLOIST" + "track_arist": "ARTIST Feat. PERFORMER", + "track_artist_credit": "ARTIST Feat. PERFORMER" + }), + ({ + "album_artist": True, + "track_artist": False, + "artist_credit": False + }, + { + "album_artist": "ARTY & SOLO" + "album_artist_credit": "ARTIST & SOLOIST" + "track_arist": "ARTIST Feat. PERFORMER", + "track_artist_credit": "ARTIST Feat. PERFORMER" + }) + ({ + "album_artist": False, + "track_artist": False, + "artist_credit": True + }, + { + "album_artist": "ARTIST & SOLOIST" + "album_artist_credit": "ARTY & SOLO" + "track_arist": "ARTIST Feat. PERFORMER", + "track_artist_credit": "ARTY Feat. FORMER" + }) + ]) + def test_use_anv(self, config_input, expected_output): + config["discogs"]["album_artist_anv"] = config_input["album_artist"] + config["discogs"]["track_artist_anv"] = config_input["track_artist"] + config["discogs"]["artist_credit_anv"] = config_input["artist_credit"] + release = { + "id": 123, + "uri": "https://www.discogs.com/release/123456-something", + "tracklist": [ + { + "title": "track", + "position": "A", + "type_": "track", + "duration": "5:44", + "artists": [ + {"name": "ARTIST", "tracks": "", "anv": "ARTY", "id": 11146} + ], + "extraartists": [ + {"name": "PERFORMER", "role": "Featuring", "tracks": "", "anv": "FORMER", "id": 787} + ], + } + ], + "artists": [ + {"name": "ARTIST NAME", "anv": "ARTY", "id": 321, "join": "&"}, + {"name": "SOLOIST", "anv": "SOLO", "id": 445, "join": ""}, + ], + "title": "title", + } + d = DiscogsPlugin().get_album_info(release) + assert d.artist == expected_output["album_artist"] + assert d.artist_credit == expected_output["album_artist_credit"] + assert d.tracks[0].artist == expected_output["track_artist"] + assert d.tracks[0].artist_credit == expected_output["track_artist_credit"] + config["discogs"]["album_artist_anv"] = False + config["discogs"]["track_artist_anv"] = False + config["discogs"]["artist_credit_anv"] = False + @pytest.mark.parametrize( "position, medium, index, subindex",