Skip to content

Commit

Permalink
dummy: Replace playlists property with test-only helper
Browse files Browse the repository at this point in the history
  • Loading branch information
jodal committed Mar 24, 2015
1 parent a8e6cd2 commit f2a56ed
Show file tree
Hide file tree
Showing 3 changed files with 45 additions and 49 deletions.
24 changes: 10 additions & 14 deletions tests/dummy_backend.py
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,10 @@ def __init__(self, backend):
super(DummyPlaylistsProvider, self).__init__(backend)
self._playlists = []

def set_playlists(self, playlists):

This comment has been minimized.

Copy link
@adamcik

adamcik Mar 24, 2015

Member

Would set_dummy_playlists make sense? Sticking to the make it obvious this is test only theme that libraryprovider already has?

"""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]
Expand All @@ -111,13 +115,13 @@ def get_items(self, uri):
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)
Expand All @@ -129,14 +133,6 @@ def delete(self, uri):
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)

Expand Down
16 changes: 8 additions & 8 deletions tests/mpd/protocol/test_music_db.py
Original file line number Diff line number Diff line change
Expand Up @@ -277,26 +277,26 @@ def test_listallinfo_duplicate(self):

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 "/"')
self.assertEqual(response1, response2)

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 "/"')
self.assertEqual(response1, response2)

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')
Expand Down Expand Up @@ -384,8 +384,8 @@ def test_lsinfo_for_root_returns_browse_result_before_playlists(self):
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'),
Expand Down
54 changes: 27 additions & 27 deletions tests/mpd/protocol/test_stored_playlists.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,18 +7,18 @@

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')
Expand All @@ -31,16 +31,16 @@ def test_listplaylist_fails_if_no_playlist_is_found(self):
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')
Expand All @@ -49,9 +49,9 @@ def test_listplaylistinfo(self):
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')
Expand All @@ -67,7 +67,7 @@ def test_listplaylistinfo_fails_if_no_playlist_is_found(self):
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')
Expand All @@ -77,8 +77,8 @@ def test_listplaylistinfo_duplicate(self):

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')
Expand All @@ -89,7 +89,7 @@ def test_listplaylists(self):
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')
Expand All @@ -98,32 +98,32 @@ def test_listplaylists_duplicate(self):

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')
Expand All @@ -132,9 +132,9 @@ def test_listplaylists_replaces_forward_slash_with_pipe(self):
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"')

Expand All @@ -150,9 +150,9 @@ def test_load_appends_to_tracklist(self):
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"')

Expand All @@ -166,9 +166,9 @@ def test_load_with_range_loads_part_of_playlist(self):
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:"')

Expand Down

0 comments on commit f2a56ed

Please sign in to comment.