dummy: Replace playlists property with test-only helper
This commit is contained in:
parent
a8e6cd26dc
commit
f2a56edbf0
@ -100,6 +100,10 @@ class DummyPlaylistsProvider(backend.PlaylistsProvider):
|
||||
super(DummyPlaylistsProvider, self).__init__(backend)
|
||||
self._playlists = []
|
||||
|
||||
def set_playlists(self, playlists):
|
||||
"""For tests using the dummy provider through an actor proxy."""
|
||||
self._playlists = playlists
|
||||
|
||||
def as_list(self):
|
||||
return [
|
||||
Ref.playlist(uri=pl.uri, name=pl.name) for pl in self._playlists]
|
||||
@ -111,13 +115,13 @@ class DummyPlaylistsProvider(backend.PlaylistsProvider):
|
||||
return [
|
||||
Ref.track(uri=t.uri, name=t.name) for t in playlist.tracks]
|
||||
|
||||
@property
|
||||
def playlists(self):
|
||||
return copy.copy(self._playlists)
|
||||
def lookup(self, uri):
|
||||
for playlist in self._playlists:
|
||||
if playlist.uri == uri:
|
||||
return playlist
|
||||
|
||||
@playlists.setter
|
||||
def playlists(self, playlists):
|
||||
self._playlists = playlists
|
||||
def refresh(self):
|
||||
pass
|
||||
|
||||
def create(self, name):
|
||||
playlist = Playlist(name=name, uri='dummy:%s' % name)
|
||||
@ -129,14 +133,6 @@ class DummyPlaylistsProvider(backend.PlaylistsProvider):
|
||||
if playlist:
|
||||
self._playlists.remove(playlist)
|
||||
|
||||
def lookup(self, uri):
|
||||
for playlist in self._playlists:
|
||||
if playlist.uri == uri:
|
||||
return playlist
|
||||
|
||||
def refresh(self):
|
||||
pass
|
||||
|
||||
def save(self, playlist):
|
||||
old_playlist = self.lookup(playlist.uri)
|
||||
|
||||
|
||||
@ -277,8 +277,8 @@ class MusicDatabaseHandlerTest(protocol.BaseTestCase):
|
||||
|
||||
def test_lsinfo_without_path_returns_same_as_for_root(self):
|
||||
last_modified = 1390942873222
|
||||
self.backend.playlists.playlists = [
|
||||
Playlist(name='a', uri='dummy:/a', last_modified=last_modified)]
|
||||
self.backend.playlists.set_playlists([
|
||||
Playlist(name='a', uri='dummy:/a', last_modified=last_modified)])
|
||||
|
||||
response1 = self.send_request('lsinfo')
|
||||
response2 = self.send_request('lsinfo "/"')
|
||||
@ -286,8 +286,8 @@ class MusicDatabaseHandlerTest(protocol.BaseTestCase):
|
||||
|
||||
def test_lsinfo_with_empty_path_returns_same_as_for_root(self):
|
||||
last_modified = 1390942873222
|
||||
self.backend.playlists.playlists = [
|
||||
Playlist(name='a', uri='dummy:/a', last_modified=last_modified)]
|
||||
self.backend.playlists.set_playlists([
|
||||
Playlist(name='a', uri='dummy:/a', last_modified=last_modified)])
|
||||
|
||||
response1 = self.send_request('lsinfo ""')
|
||||
response2 = self.send_request('lsinfo "/"')
|
||||
@ -295,8 +295,8 @@ class MusicDatabaseHandlerTest(protocol.BaseTestCase):
|
||||
|
||||
def test_lsinfo_for_root_includes_playlists(self):
|
||||
last_modified = 1390942873222
|
||||
self.backend.playlists.playlists = [
|
||||
Playlist(name='a', uri='dummy:/a', last_modified=last_modified)]
|
||||
self.backend.playlists.set_playlists([
|
||||
Playlist(name='a', uri='dummy:/a', last_modified=last_modified)])
|
||||
|
||||
self.send_request('lsinfo "/"')
|
||||
self.assertInResponse('playlist: a')
|
||||
@ -384,8 +384,8 @@ class MusicDatabaseHandlerTest(protocol.BaseTestCase):
|
||||
self.backend.library.dummy_browse_result = {
|
||||
'dummy:/': [Ref.track(uri='dummy:/a', name='a'),
|
||||
Ref.directory(uri='dummy:/foo', name='foo')]}
|
||||
self.backend.playlists.playlists = [
|
||||
Playlist(name='a', uri='dummy:/a', last_modified=last_modified)]
|
||||
self.backend.playlists.set_playlists([
|
||||
Playlist(name='a', uri='dummy:/a', last_modified=last_modified)])
|
||||
|
||||
response = self.send_request('lsinfo "/"')
|
||||
self.assertLess(response.index('directory: dummy'),
|
||||
|
||||
@ -7,18 +7,18 @@ from tests.mpd import protocol
|
||||
|
||||
class PlaylistsHandlerTest(protocol.BaseTestCase):
|
||||
def test_listplaylist(self):
|
||||
self.backend.playlists.playlists = [
|
||||
self.backend.playlists.set_playlists([
|
||||
Playlist(
|
||||
name='name', uri='dummy:name', tracks=[Track(uri='dummy:a')])]
|
||||
name='name', uri='dummy:name', tracks=[Track(uri='dummy:a')])])
|
||||
|
||||
self.send_request('listplaylist "name"')
|
||||
self.assertInResponse('file: dummy:a')
|
||||
self.assertInResponse('OK')
|
||||
|
||||
def test_listplaylist_without_quotes(self):
|
||||
self.backend.playlists.playlists = [
|
||||
self.backend.playlists.set_playlists([
|
||||
Playlist(
|
||||
name='name', uri='dummy:name', tracks=[Track(uri='dummy:a')])]
|
||||
name='name', uri='dummy:name', tracks=[Track(uri='dummy:a')])])
|
||||
|
||||
self.send_request('listplaylist name')
|
||||
self.assertInResponse('file: dummy:a')
|
||||
@ -31,16 +31,16 @@ class PlaylistsHandlerTest(protocol.BaseTestCase):
|
||||
def test_listplaylist_duplicate(self):
|
||||
playlist1 = Playlist(name='a', uri='dummy:a1', tracks=[Track(uri='b')])
|
||||
playlist2 = Playlist(name='a', uri='dummy:a2', tracks=[Track(uri='c')])
|
||||
self.backend.playlists.playlists = [playlist1, playlist2]
|
||||
self.backend.playlists.set_playlists([playlist1, playlist2])
|
||||
|
||||
self.send_request('listplaylist "a [2]"')
|
||||
self.assertInResponse('file: c')
|
||||
self.assertInResponse('OK')
|
||||
|
||||
def test_listplaylistinfo(self):
|
||||
self.backend.playlists.playlists = [
|
||||
self.backend.playlists.set_playlists([
|
||||
Playlist(
|
||||
name='name', uri='dummy:name', tracks=[Track(uri='dummy:a')])]
|
||||
name='name', uri='dummy:name', tracks=[Track(uri='dummy:a')])])
|
||||
|
||||
self.send_request('listplaylistinfo "name"')
|
||||
self.assertInResponse('file: dummy:a')
|
||||
@ -49,9 +49,9 @@ class PlaylistsHandlerTest(protocol.BaseTestCase):
|
||||
self.assertInResponse('OK')
|
||||
|
||||
def test_listplaylistinfo_without_quotes(self):
|
||||
self.backend.playlists.playlists = [
|
||||
self.backend.playlists.set_playlists([
|
||||
Playlist(
|
||||
name='name', uri='dummy:name', tracks=[Track(uri='dummy:a')])]
|
||||
name='name', uri='dummy:name', tracks=[Track(uri='dummy:a')])])
|
||||
|
||||
self.send_request('listplaylistinfo name')
|
||||
self.assertInResponse('file: dummy:a')
|
||||
@ -67,7 +67,7 @@ class PlaylistsHandlerTest(protocol.BaseTestCase):
|
||||
def test_listplaylistinfo_duplicate(self):
|
||||
playlist1 = Playlist(name='a', uri='dummy:a1', tracks=[Track(uri='b')])
|
||||
playlist2 = Playlist(name='a', uri='dummy:a2', tracks=[Track(uri='c')])
|
||||
self.backend.playlists.playlists = [playlist1, playlist2]
|
||||
self.backend.playlists.set_playlists([playlist1, playlist2])
|
||||
|
||||
self.send_request('listplaylistinfo "a [2]"')
|
||||
self.assertInResponse('file: c')
|
||||
@ -77,8 +77,8 @@ class PlaylistsHandlerTest(protocol.BaseTestCase):
|
||||
|
||||
def test_listplaylists(self):
|
||||
last_modified = 1390942873222
|
||||
self.backend.playlists.playlists = [
|
||||
Playlist(name='a', uri='dummy:a', last_modified=last_modified)]
|
||||
self.backend.playlists.set_playlists([
|
||||
Playlist(name='a', uri='dummy:a', last_modified=last_modified)])
|
||||
|
||||
self.send_request('listplaylists')
|
||||
self.assertInResponse('playlist: a')
|
||||
@ -89,7 +89,7 @@ class PlaylistsHandlerTest(protocol.BaseTestCase):
|
||||
def test_listplaylists_duplicate(self):
|
||||
playlist1 = Playlist(name='a', uri='dummy:a1')
|
||||
playlist2 = Playlist(name='a', uri='dummy:a2')
|
||||
self.backend.playlists.playlists = [playlist1, playlist2]
|
||||
self.backend.playlists.set_playlists([playlist1, playlist2])
|
||||
|
||||
self.send_request('listplaylists')
|
||||
self.assertInResponse('playlist: a')
|
||||
@ -98,32 +98,32 @@ class PlaylistsHandlerTest(protocol.BaseTestCase):
|
||||
|
||||
def test_listplaylists_ignores_playlists_without_name(self):
|
||||
last_modified = 1390942873222
|
||||
self.backend.playlists.playlists = [
|
||||
Playlist(name='', uri='dummy:', last_modified=last_modified)]
|
||||
self.backend.playlists.set_playlists([
|
||||
Playlist(name='', uri='dummy:', last_modified=last_modified)])
|
||||
|
||||
self.send_request('listplaylists')
|
||||
self.assertNotInResponse('playlist: ')
|
||||
self.assertInResponse('OK')
|
||||
|
||||
def test_listplaylists_replaces_newline_with_space(self):
|
||||
self.backend.playlists.playlists = [
|
||||
Playlist(name='a\n', uri='dummy:')]
|
||||
self.backend.playlists.set_playlists([
|
||||
Playlist(name='a\n', uri='dummy:')])
|
||||
self.send_request('listplaylists')
|
||||
self.assertInResponse('playlist: a ')
|
||||
self.assertNotInResponse('playlist: a\n')
|
||||
self.assertInResponse('OK')
|
||||
|
||||
def test_listplaylists_replaces_carriage_return_with_space(self):
|
||||
self.backend.playlists.playlists = [
|
||||
Playlist(name='a\r', uri='dummy:')]
|
||||
self.backend.playlists.set_playlists([
|
||||
Playlist(name='a\r', uri='dummy:')])
|
||||
self.send_request('listplaylists')
|
||||
self.assertInResponse('playlist: a ')
|
||||
self.assertNotInResponse('playlist: a\r')
|
||||
self.assertInResponse('OK')
|
||||
|
||||
def test_listplaylists_replaces_forward_slash_with_pipe(self):
|
||||
self.backend.playlists.playlists = [
|
||||
Playlist(name='a/b', uri='dummy:')]
|
||||
self.backend.playlists.set_playlists([
|
||||
Playlist(name='a/b', uri='dummy:')])
|
||||
self.send_request('listplaylists')
|
||||
self.assertInResponse('playlist: a|b')
|
||||
self.assertNotInResponse('playlist: a/b')
|
||||
@ -132,9 +132,9 @@ class PlaylistsHandlerTest(protocol.BaseTestCase):
|
||||
def test_load_appends_to_tracklist(self):
|
||||
self.core.tracklist.add([Track(uri='a'), Track(uri='b')])
|
||||
self.assertEqual(len(self.core.tracklist.tracks.get()), 2)
|
||||
self.backend.playlists.playlists = [
|
||||
self.backend.playlists.set_playlists([
|
||||
Playlist(name='A-list', uri='dummy:A-list', tracks=[
|
||||
Track(uri='c'), Track(uri='d'), Track(uri='e')])]
|
||||
Track(uri='c'), Track(uri='d'), Track(uri='e')])])
|
||||
|
||||
self.send_request('load "A-list"')
|
||||
|
||||
@ -150,9 +150,9 @@ class PlaylistsHandlerTest(protocol.BaseTestCase):
|
||||
def test_load_with_range_loads_part_of_playlist(self):
|
||||
self.core.tracklist.add([Track(uri='a'), Track(uri='b')])
|
||||
self.assertEqual(len(self.core.tracklist.tracks.get()), 2)
|
||||
self.backend.playlists.playlists = [
|
||||
self.backend.playlists.set_playlists([
|
||||
Playlist(name='A-list', uri='dummy:A-list', tracks=[
|
||||
Track(uri='c'), Track(uri='d'), Track(uri='e')])]
|
||||
Track(uri='c'), Track(uri='d'), Track(uri='e')])])
|
||||
|
||||
self.send_request('load "A-list" "1:2"')
|
||||
|
||||
@ -166,9 +166,9 @@ class PlaylistsHandlerTest(protocol.BaseTestCase):
|
||||
def test_load_with_range_without_end_loads_rest_of_playlist(self):
|
||||
self.core.tracklist.add([Track(uri='a'), Track(uri='b')])
|
||||
self.assertEqual(len(self.core.tracklist.tracks.get()), 2)
|
||||
self.backend.playlists.playlists = [
|
||||
self.backend.playlists.set_playlists([
|
||||
Playlist(name='A-list', uri='dummy:A-list', tracks=[
|
||||
Track(uri='c'), Track(uri='d'), Track(uri='e')])]
|
||||
Track(uri='c'), Track(uri='d'), Track(uri='e')])])
|
||||
|
||||
self.send_request('load "A-list" "1:"')
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user