Files
beets/test/util/test_lyrics.py
Šarūnas Nejus 8020c07acf Track instrumental lyrics metadata
- Leave lyrics text empty when a backend reports an instrumental track and
  persist that state in lyrics_instrumental.
2026-07-13 01:07:59 +01:00

43 lines
1.5 KiB
Python

import textwrap
from beets.util.lyrics import Lyrics
class TestLyrics:
def test_instrumental_lyrics(self):
lyrics = Lyrics(
"[Instrumental]", "lrclib", url="https://lrclib.net/api/1"
)
assert lyrics.full_text == ""
assert lyrics.instrumental
assert lyrics.backend == "lrclib"
assert lyrics.url == "https://lrclib.net/api/1"
assert lyrics.language is None
assert lyrics.translation_language is None
def test_from_legacy_text(self, is_importable):
text = textwrap.dedent("""
[00:00.00] Some synced lyrics / Quelques paroles synchronisées
[00:00.50]
[00:01.00] Some more synced lyrics / Quelques paroles plus synchronisées
Source: https://lrclib.net/api/1/""")
lyrics = Lyrics.from_legacy_text(text)
assert lyrics.full_text == textwrap.dedent(
"""
[00:00.00] Some synced lyrics / Quelques paroles synchronisées
[00:00.50]
[00:01.00] Some more synced lyrics / Quelques paroles plus synchronisées"""
)
assert lyrics.backend == "lrclib"
assert lyrics.url == "https://lrclib.net/api/1/"
langdetect_available = is_importable("langdetect")
assert lyrics.language == ("EN" if langdetect_available else None)
assert lyrics.translation_language == (
"FR" if langdetect_available else None
)
assert not lyrics.instrumental