backend: Add library.browse()
This commit is contained in:
parent
0fb7c79524
commit
a3731c8187
@ -50,9 +50,28 @@ class BaseLibraryProvider(object):
|
||||
|
||||
pykka_traversable = True
|
||||
|
||||
name = None
|
||||
"""
|
||||
Name of the library.
|
||||
|
||||
Used as the library directory name in Mopidy's virtual file system.
|
||||
|
||||
*MUST be set by any class that implements :meth:`browse`.*
|
||||
"""
|
||||
|
||||
def __init__(self, backend):
|
||||
self.backend = backend
|
||||
|
||||
def browse(self, path):
|
||||
"""
|
||||
See :meth:`mopidy.core.LibraryController.browse`.
|
||||
|
||||
If you implement this method, make sure to also set :attr:`name`.
|
||||
|
||||
*MAY be implemented by subclass.*
|
||||
"""
|
||||
return []
|
||||
|
||||
# TODO: replace with search(query, exact=True, ...)
|
||||
def find_exact(self, query=None, uris=None):
|
||||
"""
|
||||
|
||||
@ -38,12 +38,18 @@ class DummyBackend(pykka.ThreadingActor, base.Backend):
|
||||
|
||||
|
||||
class DummyLibraryProvider(base.BaseLibraryProvider):
|
||||
name = 'dummy'
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
super(DummyLibraryProvider, self).__init__(*args, **kwargs)
|
||||
self.dummy_library = []
|
||||
self.dummy_browse_result = []
|
||||
self.dummy_find_exact_result = SearchResult()
|
||||
self.dummy_search_result = SearchResult()
|
||||
|
||||
def browse(self, path):
|
||||
return self.dummy_browse_result
|
||||
|
||||
def find_exact(self, **query):
|
||||
return self.dummy_find_exact_result
|
||||
|
||||
|
||||
@ -42,6 +42,8 @@ def write_library(json_file, data):
|
||||
|
||||
|
||||
class LocalJsonLibraryProvider(base.BaseLibraryProvider):
|
||||
name = 'local'
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
super(LocalJsonLibraryProvider, self).__init__(*args, **kwargs)
|
||||
self._uri_mapping = {}
|
||||
|
||||
@ -110,6 +110,10 @@ class LocalLibraryProviderTest(unittest.TestCase):
|
||||
result = backend.library.lookup(self.tracks[0].uri)
|
||||
self.assertEqual(result, [])
|
||||
|
||||
@unittest.SkipTest
|
||||
def test_browse(self):
|
||||
pass # TODO
|
||||
|
||||
def test_lookup(self):
|
||||
tracks = self.library.lookup(self.tracks[0].uri)
|
||||
self.assertEqual(tracks, self.tracks[0:1])
|
||||
|
||||
Loading…
Reference in New Issue
Block a user