mirror of
https://github.com/KevinMidboe/spotify-downloader.git
synced 2025-10-29 18:00:15 +00:00
The following inputs can now be used to fetch lyrics: * artist and track names * search query * direct url
37 lines
1.3 KiB
Python
37 lines
1.3 KiB
Python
import lyricwikia
|
|
|
|
from spotdl.lyrics import LyricBase
|
|
from spotdl.lyrics import exceptions
|
|
from spotdl.lyrics.providers import LyricWikia
|
|
|
|
import pytest
|
|
|
|
|
|
class TestLyricWikia:
|
|
def test_subclass(self):
|
|
assert issubclass(LyricWikia, LyricBase)
|
|
|
|
def test_from_artist_and_track(self, monkeypatch):
|
|
# `LyricWikia` class uses the 3rd party method `lyricwikia.get_lyrics`
|
|
# internally and there is no need to test a 3rd party library as they
|
|
# have their own implementation of tests.
|
|
monkeypatch.setattr(
|
|
"lyricwikia.get_lyrics", lambda a, b, c, d: "awesome lyrics!"
|
|
)
|
|
artist, track = "selena gomez", "wolves"
|
|
lyrics = LyricWikia().from_artist_and_track(artist, track)
|
|
assert lyrics == "awesome lyrics!"
|
|
|
|
def test_lyrics_not_found_error(self, monkeypatch):
|
|
def lyricwikia_lyrics_not_found(msg):
|
|
raise lyricwikia.LyricsNotFound(msg)
|
|
|
|
# Wrap `lyricwikia.LyricsNotFoundError` with `exceptions.LyricsNotFoundError` error.
|
|
monkeypatch.setattr(
|
|
"lyricwikia.get_lyrics",
|
|
lambda a, b, c, d: lyricwikia_lyrics_not_found("Nope, no lyrics."),
|
|
)
|
|
artist, track = "nonexistent_artist", "nonexistent_track"
|
|
with pytest.raises(exceptions.LyricsNotFoundError):
|
|
LyricWikia().from_artist_and_track(artist, track)
|