mpd: list shouldn't return blank artist names, album names, or dates
This commit is contained in:
parent
72574c1ae0
commit
5fbb6328d6
@ -82,6 +82,9 @@ long time been our most requested feature. Finally, it's here!
|
||||
- The MPD command ``listplaylists`` will no longer return playlists without a
|
||||
name. This could crash ncmpcpp.
|
||||
|
||||
- The MPD command ``list`` will no longer return artist names, album names, or
|
||||
dates that are blank.
|
||||
|
||||
**MPRIS frontend**
|
||||
|
||||
- The MPRIS playlists interface is now supported by our MPRIS frontend. This
|
||||
|
||||
@ -37,9 +37,11 @@ class DummyLibraryProvider(base.BaseLibraryProvider):
|
||||
def __init__(self, *args, **kwargs):
|
||||
super(DummyLibraryProvider, self).__init__(*args, **kwargs)
|
||||
self.dummy_library = []
|
||||
self.dummy_find_exact_result = []
|
||||
self.dummy_search_result = []
|
||||
|
||||
def find_exact(self, **query):
|
||||
return []
|
||||
return self.dummy_find_exact_result
|
||||
|
||||
def lookup(self, uri):
|
||||
return filter(lambda t: uri == t.uri, self.dummy_library)
|
||||
@ -48,7 +50,7 @@ class DummyLibraryProvider(base.BaseLibraryProvider):
|
||||
pass
|
||||
|
||||
def search(self, **query):
|
||||
return []
|
||||
return self.dummy_search_result
|
||||
|
||||
|
||||
class DummyPlaybackProvider(base.BasePlaybackProvider):
|
||||
|
||||
@ -250,7 +250,8 @@ def _list_artist(context, query):
|
||||
tracks = context.core.library.find_exact(**query).get()
|
||||
for track in tracks:
|
||||
for artist in track.artists:
|
||||
artists.add(('Artist', artist.name))
|
||||
if artist.name:
|
||||
artists.add(('Artist', artist.name))
|
||||
return artists
|
||||
|
||||
|
||||
@ -258,7 +259,7 @@ def _list_album(context, query):
|
||||
albums = set()
|
||||
tracks = context.core.library.find_exact(**query).get()
|
||||
for track in tracks:
|
||||
if track.album is not None:
|
||||
if track.album and track.album.name:
|
||||
albums.add(('Album', track.album.name))
|
||||
return albums
|
||||
|
||||
@ -267,7 +268,7 @@ def _list_date(context, query):
|
||||
dates = set()
|
||||
tracks = context.core.library.find_exact(**query).get()
|
||||
for track in tracks:
|
||||
if track.date is not None:
|
||||
if track.date:
|
||||
dates.add(('Date', track.date))
|
||||
return dates
|
||||
|
||||
|
||||
@ -1,5 +1,7 @@
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from mopidy.models import Album, Artist, Track
|
||||
|
||||
from tests.frontends.mpd import protocol
|
||||
|
||||
|
||||
@ -181,6 +183,14 @@ class MusicDatabaseListTest(protocol.BaseTestCase):
|
||||
self.sendRequest('list "artist" "artist" ""')
|
||||
self.assertInResponse('OK')
|
||||
|
||||
def test_list_artist_should_not_return_artists_without_names(self):
|
||||
self.backend.library.dummy_find_exact_result = [
|
||||
Track(artists=[Artist(name='')])]
|
||||
|
||||
self.sendRequest('list "artist"')
|
||||
self.assertNotInResponse('Artist: ')
|
||||
self.assertInResponse('OK')
|
||||
|
||||
### Album
|
||||
|
||||
def test_list_album_with_quotes(self):
|
||||
@ -232,6 +242,14 @@ class MusicDatabaseListTest(protocol.BaseTestCase):
|
||||
self.sendRequest('list "album" "artist" ""')
|
||||
self.assertInResponse('OK')
|
||||
|
||||
def test_list_album_should_not_return_albums_without_names(self):
|
||||
self.backend.library.dummy_find_exact_result = [
|
||||
Track(album=Album(name=''))]
|
||||
|
||||
self.sendRequest('list "album"')
|
||||
self.assertNotInResponse('Album: ')
|
||||
self.assertInResponse('OK')
|
||||
|
||||
### Date
|
||||
|
||||
def test_list_date_with_quotes(self):
|
||||
@ -279,6 +297,13 @@ class MusicDatabaseListTest(protocol.BaseTestCase):
|
||||
self.sendRequest('list "date" "artist" ""')
|
||||
self.assertInResponse('OK')
|
||||
|
||||
def test_list_date_should_not_return_blank_dates(self):
|
||||
self.backend.library.dummy_find_exact_result = [Track(date='')]
|
||||
|
||||
self.sendRequest('list "date"')
|
||||
self.assertNotInResponse('Date: ')
|
||||
self.assertInResponse('OK')
|
||||
|
||||
### Genre
|
||||
|
||||
def test_list_genre_with_quotes(self):
|
||||
|
||||
Loading…
Reference in New Issue
Block a user