Make core.uri_schemes include URI schemes from all backends

This commit is contained in:
Stein Magnus Jodal 2012-09-28 02:24:58 +02:00
parent 11ddc42120
commit 7b9c682e95
2 changed files with 30 additions and 1 deletions

View File

@ -43,7 +43,10 @@ class Core(pykka.ThreadingActor, AudioListener):
@property
def uri_schemes(self):
"""List of URI schemes we can handle"""
return self._backends[0].uri_schemes.get()
futures = [backend.uri_schemes for backend in self._backends]
results = pykka.get_all(futures)
schemes = [uri_scheme for result in results for uri_scheme in result]
return sorted(schemes)
def reached_end_of_stream(self):
self.playback.on_end_of_track()

26
tests/core/actor_test.py Normal file
View File

@ -0,0 +1,26 @@
import mock
import pykka
from mopidy.core import Core
from tests import unittest
class CoreActorTest(unittest.TestCase):
def setUp(self):
self.backend1 = mock.Mock()
self.backend1.uri_schemes.get.return_value = ['dummy1']
self.backend2 = mock.Mock()
self.backend2.uri_schemes.get.return_value = ['dummy2']
self.core = Core(audio=None, backends=[self.backend1, self.backend2])
def tearDown(self):
pykka.ActorRegistry.stop_all()
def test_uri_schemes_has_uris_from_all_backends(self):
result = self.core.uri_schemes
self.assertIn('dummy1', result)
self.assertIn('dummy2', result)