diff --git a/mopidy/core/library.py b/mopidy/core/library.py index 1ff4e874..903f25ae 100644 --- a/mopidy/core/library.py +++ b/mopidy/core/library.py @@ -62,7 +62,8 @@ class LibraryController(object): """ if uri is None: backends = self.backends.with_library_browse.values() - return [b.library.root_directory.get() for b in backends] + root = [b.library.root_directory.get() for b in backends] + return list(collections.OrderedDict.fromkeys(root)) scheme = urlparse.urlparse(uri).scheme backend = self.backends.with_library_browse.get(scheme) diff --git a/tests/core/test_library.py b/tests/core/test_library.py index a1daa0bd..1db22688 100644 --- a/tests/core/test_library.py +++ b/tests/core/test_library.py @@ -19,7 +19,7 @@ class CoreLibraryTest(unittest.TestCase): dummy2_root = Ref.directory(uri='dummy2:directory', name='dummy2') self.backend2 = mock.Mock() - self.backend2.uri_schemes.get.return_value = ['dummy2'] + self.backend2.uri_schemes.get.return_value = ['dummy2', 'du2'] self.library2 = mock.Mock(spec=backend.LibraryProvider) self.library2.root_directory.get.return_value = dummy2_root self.backend2.library = self.library2 @@ -138,7 +138,7 @@ class CoreLibraryTest(unittest.TestCase): self.core.library.refresh() self.library1.refresh.assert_called_once_with(None) - self.library2.refresh.assert_called_once_with(None) + self.library2.refresh.assert_called_twice_with(None) def test_find_exact_combines_results_from_all_backends(self): track1 = Track(uri='dummy1:a')