mpd: Add tests for adding VFS folders
This commit is contained in:
parent
a8458720ee
commit
03838a1968
@ -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()
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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):
|
||||
|
||||
@ -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')
|
||||
|
||||
Loading…
Reference in New Issue
Block a user