Add tests for artist_sort as lyrics search fallback

Adjust doc comment to highlight that artist_sort is used as a fallback
This commit is contained in:
Ashhar Hasan 2020-04-19 19:05:55 +05:30
parent 45c8e51d6c
commit 625e9253c0
No known key found for this signature in database
GPG key ID: 4CD0188E0E5784EF
2 changed files with 24 additions and 0 deletions

View file

@ -187,6 +187,9 @@ def search_pairs(item):
In addition to the artist and title obtained from the `item` the
method tries to strip extra information like paranthesized suffixes
and featured artists from the strings and add them as candidates.
The artist sort name is added as a fallback candidate to help in
cases where artist name includes special characters or is in a
non-latin script.
The method also tries to split multiple titles separated with `/`.
"""
def generate_alternatives(string, patterns):

View file

@ -95,6 +95,27 @@ class LyricsPluginTest(unittest.TestCase):
self.assertEqual(('Alice and Bob', ['song']),
list(lyrics.search_pairs(item))[0])
def test_search_artist_sort(self):
item = Item(artist='CHVRCHΞS', title='song', artist_sort='CHVRCHES')
self.assertIn(('CHVRCHΞS', ['song']),
lyrics.search_pairs(item))
self.assertIn(('CHVRCHES', ['song']),
lyrics.search_pairs(item))
# Make sure that the original artist name is still the first entry
self.assertEqual(('CHVRCHΞS', ['song']),
list(lyrics.search_pairs(item))[0])
item = Item(artist='横山克', title='song', artist_sort='Masaru Yokoyama')
self.assertIn(('横山克', ['song']),
lyrics.search_pairs(item))
self.assertIn(('Masaru Yokoyama', ['song']),
lyrics.search_pairs(item))
# Make sure that the original artist name is still the first entry
self.assertEqual(('横山克', ['song']),
list(lyrics.search_pairs(item))[0])
def test_search_pairs_multi_titles(self):
item = Item(title='1 / 2', artist='A')
self.assertIn(('A', ['1 / 2']), lyrics.search_pairs(item))