dummy: Replace playlists property with test-only helper

This commit is contained in:
Stein Magnus Jodal 2015-03-25 00:03:48 +01:00
parent a8e6cd26dc
commit f2a56edbf0
3 changed files with 45 additions and 49 deletions

View File

@ -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)

View File

@ -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'),

View File

@ -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:"')