mpd: Add tests for adding VFS folders

This commit is contained in:
Thomas Adamcik 2014-01-14 23:29:52 +01:00
parent a8458720ee
commit 03838a1968
4 changed files with 43 additions and 20 deletions

View File

@ -20,7 +20,7 @@ def add(context, uri):
- ``add ""`` should add all tracks in the library to the current playlist.
"""
if not uri:
if not uri.strip('/'):
return
tl_tracks = context.core.tracklist.add(uri=uri).get()

View File

@ -33,12 +33,12 @@ class DummyLibraryProvider(backend.LibraryProvider):
def __init__(self, *args, **kwargs):
super(DummyLibraryProvider, self).__init__(*args, **kwargs)
self.dummy_library = []
self.dummy_browse_result = []
self.dummy_browse_result = {}
self.dummy_find_exact_result = SearchResult()
self.dummy_search_result = SearchResult()
def browse(self, path):
return self.dummy_browse_result
return self.dummy_browse_result.get(path, [])
def find_exact(self, **query):
return self.dummy_find_exact_result

View File

@ -1,6 +1,6 @@
from __future__ import unicode_literals
from mopidy.models import Track
from mopidy.models import Ref, Track
from tests.mpd import protocol
@ -24,9 +24,36 @@ class CurrentPlaylistHandlerTest(protocol.BaseTestCase):
self.assertEqualResponse(
'ACK [50@0] {add} directory or file not found')
def test_add_with_empty_uri_should_add_all_known_tracks_and_ok(self):
def test_add_with_empty_uri_should_not_add_anything_and_ok(self):
self.backend.library.dummy_library = [Track(uri='dummy:/a', name='a')]
self.backend.library.dummy_browse_result = {
'/': [Ref.track(uri='dummy:/a', name='a')]}
self.sendRequest('add ""')
# TODO check that we add all tracks (we currently don't)
self.assertEqual(len(self.core.tracklist.tracks.get()), 0)
self.assertInResponse('OK')
def test_add_with_library_should_recurse(self):
tracks = [Track(uri='dummy:/a', name='a'),
Track(uri='dummy:/b', name='b')]
self.backend.library.dummy_library = tracks
self.backend.library.dummy_browse_result = {
'/': [Ref.track(uri='dummy:/a', name='a'),
Ref.directory(uri='/foo')],
'/foo': [Ref.track(uri='dummy:/b', name='b')]}
self.sendRequest('add "/dummy"')
self.assertEqual(self.core.tracklist.tracks.get(), tracks)
self.assertInResponse('OK')
def test_add_root_should_not_add_anything_and_ok(self):
self.backend.library.dummy_library = [Track(uri='dummy:/a', name='a')]
self.backend.library.dummy_browse_result = {
'/': [Ref.track(uri='dummy:/a', name='a')]}
self.sendRequest('add "/"')
self.assertEqual(len(self.core.tracklist.tracks.get()), 0)
self.assertInResponse('OK')
def test_addid_without_songpos(self):

View File

@ -168,20 +168,18 @@ class MusicDatabaseHandlerTest(protocol.BaseTestCase):
self.assertInResponse('OK')
def test_lsinfo_for_root_includes_dirs_for_each_lib_with_content(self):
self.backend.library.dummy_browse_result = [
Ref.track(uri='dummy:/a', name='a'),
Ref.directory(uri='/foo', name='foo'),
]
self.backend.library.dummy_browse_result = {
'/': [Ref.track(uri='dummy:/a', name='a'),
Ref.directory(uri='/foo', name='foo')]}
self.sendRequest('lsinfo "/"')
self.assertInResponse('directory: dummy')
self.assertInResponse('OK')
def test_lsinfo_for_dir_with_and_without_leading_slash_is_the_same(self):
self.backend.library.dummy_browse_result = [
Ref.track(uri='dummy:/a', name='a'),
Ref.directory(uri='/foo', name='foo'),
]
self.backend.library.dummy_browse_result = {
'/': [Ref.track(uri='dummy:/a', name='a'),
Ref.directory(uri='/foo', name='foo')]}
response1 = self.sendRequest('lsinfo "dummy"')
response2 = self.sendRequest('lsinfo "/dummy"')
@ -191,9 +189,8 @@ class MusicDatabaseHandlerTest(protocol.BaseTestCase):
self.backend.library.dummy_library = [
Track(uri='dummy:/a', name='a'),
]
self.backend.library.dummy_browse_result = [
Ref.track(uri='dummy:/a', name='a'),
]
self.backend.library.dummy_browse_result = {
'/': [Ref.track(uri='dummy:/a', name='a')]}
self.sendRequest('lsinfo "/dummy"')
self.assertInResponse('file: dummy:/a')
@ -201,9 +198,8 @@ class MusicDatabaseHandlerTest(protocol.BaseTestCase):
self.assertInResponse('OK')
def test_lsinfo_for_dir_includes_subdirs(self):
self.backend.library.dummy_browse_result = [
Ref.directory(uri='/foo', name='foo'),
]
self.backend.library.dummy_browse_result = {
'/': [Ref.directory(uri='/foo', name='foo')]}
self.sendRequest('lsinfo "/dummy"')
self.assertInResponse('directory: dummy/foo')