From 05632c3b8bb50ae02e2db51b0f010059b30766be Mon Sep 17 00:00:00 2001 From: Stein Magnus Jodal Date: Sat, 11 Jan 2014 17:52:34 +0100 Subject: [PATCH] backend: Update backend API imports --- mopidy/core/actor.py | 6 +++--- mopidy/ext.py | 2 +- mopidy/local/actor.py | 4 ++-- mopidy/local/library.py | 4 ++-- mopidy/local/playback.py | 4 ++-- mopidy/local/playlists.py | 6 +++--- mopidy/stream/actor.py | 9 ++++----- tests/{backends => backend}/__init__.py | 0 tests/{backends => backend}/listener_test.py | 4 ++-- tests/core/library_test.py | 9 ++++----- tests/core/playback_test.py | 21 ++++++++++---------- tests/core/playlists_test.py | 9 ++++----- tests/core/tracklist_test.py | 9 ++++----- tests/dummy_backend.py | 10 +++++----- tests/local/events_test.py | 5 ++--- 15 files changed, 48 insertions(+), 54 deletions(-) rename tests/{backends => backend}/__init__.py (100%) rename tests/{backends => backend}/listener_test.py (83%) diff --git a/mopidy/core/actor.py b/mopidy/core/actor.py index 26350f16..0f152436 100644 --- a/mopidy/core/actor.py +++ b/mopidy/core/actor.py @@ -5,8 +5,8 @@ import itertools import pykka -from mopidy.audio import AudioListener, PlaybackState -from mopidy.backends.listener import BackendListener +from mopidy import audio, backend +from mopidy.audio import PlaybackState from mopidy.utils import versioning from .library import LibraryController @@ -16,7 +16,7 @@ from .playlists import PlaylistsController from .tracklist import TracklistController -class Core(pykka.ThreadingActor, AudioListener, BackendListener): +class Core(pykka.ThreadingActor, audio.AudioListener, backend.BackendListener): library = None """The library controller. An instance of :class:`mopidy.core.LibraryController`.""" diff --git a/mopidy/ext.py b/mopidy/ext.py index 58e6caab..a58090cc 100644 --- a/mopidy/ext.py +++ b/mopidy/ext.py @@ -123,7 +123,7 @@ class Extension(object): .. deprecated:: 0.18 Use :meth:`setup` instead. - :returns: list of :class:`~mopidy.backends.base.Backend` subclasses + :returns: list of :class:`~mopidy.backend.Backend` subclasses """ return [] diff --git a/mopidy/local/actor.py b/mopidy/local/actor.py index c29a5dbe..61becc72 100644 --- a/mopidy/local/actor.py +++ b/mopidy/local/actor.py @@ -5,7 +5,7 @@ import os import pykka -from mopidy.backends import base +from mopidy import backend from mopidy.utils import encoding, path from .library import LocalLibraryProvider @@ -15,7 +15,7 @@ from .playlists import LocalPlaylistsProvider logger = logging.getLogger(__name__) -class LocalBackend(pykka.ThreadingActor, base.Backend): +class LocalBackend(pykka.ThreadingActor, backend.Backend): uri_schemes = ['local'] libraries = [] diff --git a/mopidy/local/library.py b/mopidy/local/library.py index 2d0478ab..13d46979 100644 --- a/mopidy/local/library.py +++ b/mopidy/local/library.py @@ -2,12 +2,12 @@ from __future__ import unicode_literals import logging -from mopidy.backends import base +from mopidy import backend logger = logging.getLogger(__name__) -class LocalLibraryProvider(base.BaseLibraryProvider): +class LocalLibraryProvider(backend.LibraryProvider): """Proxy library that delegates work to our active local library.""" root_directory_name = 'local' diff --git a/mopidy/local/playback.py b/mopidy/local/playback.py index 6ef7b410..bd798589 100644 --- a/mopidy/local/playback.py +++ b/mopidy/local/playback.py @@ -2,14 +2,14 @@ from __future__ import unicode_literals import logging -from mopidy.backends import base +from mopidy import backend from . import translator logger = logging.getLogger(__name__) -class LocalPlaybackProvider(base.BasePlaybackProvider): +class LocalPlaybackProvider(backend.PlaybackProvider): def change_track(self, track): track = track.copy(uri=translator.local_track_uri_to_file_uri( track.uri, self.backend.config['local']['media_dir'])) diff --git a/mopidy/local/playlists.py b/mopidy/local/playlists.py index 64019d08..f22c6fde 100644 --- a/mopidy/local/playlists.py +++ b/mopidy/local/playlists.py @@ -5,7 +5,7 @@ import logging import os import shutil -from mopidy.backends import base, listener +from mopidy import backend from mopidy.models import Playlist from mopidy.utils import formatting, path @@ -15,7 +15,7 @@ from .translator import parse_m3u logger = logging.getLogger(__name__) -class LocalPlaylistsProvider(base.BasePlaylistsProvider): +class LocalPlaylistsProvider(backend.PlaylistsProvider): def __init__(self, *args, **kwargs): super(LocalPlaylistsProvider, self).__init__(*args, **kwargs) self._media_dir = self.backend.config['local']['media_dir'] @@ -58,7 +58,7 @@ class LocalPlaylistsProvider(base.BasePlaylistsProvider): self.playlists = playlists # TODO: send what scheme we loaded them for? - listener.BackendListener.send('playlists_loaded') + backend.BackendListener.send('playlists_loaded') logger.info( 'Loaded %d local playlists from %s', diff --git a/mopidy/stream/actor.py b/mopidy/stream/actor.py index a5b2a539..aecc4e42 100644 --- a/mopidy/stream/actor.py +++ b/mopidy/stream/actor.py @@ -5,28 +5,27 @@ import urlparse import pykka -from mopidy import audio as audio_lib, exceptions +from mopidy import audio as audio_lib, backend, exceptions from mopidy.audio import scan -from mopidy.backends import base from mopidy.models import Track logger = logging.getLogger(__name__) -class StreamBackend(pykka.ThreadingActor, base.Backend): +class StreamBackend(pykka.ThreadingActor, backend.Backend): def __init__(self, config, audio): super(StreamBackend, self).__init__() self.library = StreamLibraryProvider( backend=self, timeout=config['stream']['timeout']) - self.playback = base.BasePlaybackProvider(audio=audio, backend=self) + self.playback = backend.PlaybackProvider(audio=audio, backend=self) self.playlists = None self.uri_schemes = audio_lib.supported_uri_schemes( config['stream']['protocols']) -class StreamLibraryProvider(base.BaseLibraryProvider): +class StreamLibraryProvider(backend.LibraryProvider): def __init__(self, backend, timeout): super(StreamLibraryProvider, self).__init__(backend) self._scanner = scan.Scanner(min_duration=None, timeout=timeout) diff --git a/tests/backends/__init__.py b/tests/backend/__init__.py similarity index 100% rename from tests/backends/__init__.py rename to tests/backend/__init__.py diff --git a/tests/backends/listener_test.py b/tests/backend/listener_test.py similarity index 83% rename from tests/backends/listener_test.py rename to tests/backend/listener_test.py index ae2eb997..fd861e4f 100644 --- a/tests/backends/listener_test.py +++ b/tests/backend/listener_test.py @@ -3,12 +3,12 @@ from __future__ import unicode_literals import mock import unittest -from mopidy.backends.listener import BackendListener +from mopidy import backend class BackendListenerTest(unittest.TestCase): def setUp(self): - self.listener = BackendListener() + self.listener = backend.BackendListener() def test_on_event_forwards_to_specific_handler(self): self.listener.playlists_loaded = mock.Mock() diff --git a/tests/core/library_test.py b/tests/core/library_test.py index 44c5e3f1..836a434e 100644 --- a/tests/core/library_test.py +++ b/tests/core/library_test.py @@ -3,8 +3,7 @@ from __future__ import unicode_literals import mock import unittest -from mopidy.backends import base -from mopidy.core import Core +from mopidy import backend, core from mopidy.models import Ref, SearchResult, Track @@ -12,13 +11,13 @@ class CoreLibraryTest(unittest.TestCase): def setUp(self): self.backend1 = mock.Mock() self.backend1.uri_schemes.get.return_value = ['dummy1'] - self.library1 = mock.Mock(spec=base.BaseLibraryProvider) + self.library1 = mock.Mock(spec=backend.LibraryProvider) self.library1.root_directory_name.get.return_value = 'dummy1' self.backend1.library = self.library1 self.backend2 = mock.Mock() self.backend2.uri_schemes.get.return_value = ['dummy2'] - self.library2 = mock.Mock(spec=base.BaseLibraryProvider) + self.library2 = mock.Mock(spec=backend.LibraryProvider) self.library2.root_directory_name.get.return_value = 'dummy2' self.backend2.library = self.library2 @@ -27,7 +26,7 @@ class CoreLibraryTest(unittest.TestCase): self.backend3.uri_schemes.get.return_value = ['dummy3'] self.backend3.has_library().get.return_value = False - self.core = Core(audio=None, backends=[ + self.core = core.Core(audio=None, backends=[ self.backend1, self.backend2, self.backend3]) def test_browse_root_returns_dir_ref_for_each_lib_with_root_dir_name(self): diff --git a/tests/core/playback_test.py b/tests/core/playback_test.py index f3374547..806de40e 100644 --- a/tests/core/playback_test.py +++ b/tests/core/playback_test.py @@ -3,8 +3,7 @@ from __future__ import unicode_literals import mock import unittest -from mopidy.backends import base -from mopidy.core import Core, PlaybackState +from mopidy import backend, core from mopidy.models import Track @@ -12,12 +11,12 @@ class CorePlaybackTest(unittest.TestCase): def setUp(self): self.backend1 = mock.Mock() self.backend1.uri_schemes.get.return_value = ['dummy1'] - self.playback1 = mock.Mock(spec=base.BasePlaybackProvider) + self.playback1 = mock.Mock(spec=backend.PlaybackProvider) self.backend1.playback = self.playback1 self.backend2 = mock.Mock() self.backend2.uri_schemes.get.return_value = ['dummy2'] - self.playback2 = mock.Mock(spec=base.BasePlaybackProvider) + self.playback2 = mock.Mock(spec=backend.PlaybackProvider) self.backend2.playback = self.playback2 # A backend without the optional playback provider @@ -32,7 +31,7 @@ class CorePlaybackTest(unittest.TestCase): Track(uri='dummy1:b', length=40000), ] - self.core = Core(audio=None, backends=[ + self.core = core.Core(audio=None, backends=[ self.backend1, self.backend2, self.backend3]) self.core.tracklist.add(self.tracks) @@ -78,7 +77,7 @@ class CorePlaybackTest(unittest.TestCase): self.core.playback.current_tl_track = self.unplayable_tl_track self.core.playback.pause() - self.assertEqual(self.core.playback.state, PlaybackState.PAUSED) + self.assertEqual(self.core.playback.state, core.PlaybackState.PAUSED) self.assertFalse(self.playback1.pause.called) self.assertFalse(self.playback2.pause.called) @@ -100,10 +99,10 @@ class CorePlaybackTest(unittest.TestCase): def test_resume_does_nothing_if_track_is_unplayable(self): self.core.playback.current_tl_track = self.unplayable_tl_track - self.core.playback.state = PlaybackState.PAUSED + self.core.playback.state = core.PlaybackState.PAUSED self.core.playback.resume() - self.assertEqual(self.core.playback.state, PlaybackState.PAUSED) + self.assertEqual(self.core.playback.state, core.PlaybackState.PAUSED) self.assertFalse(self.playback1.resume.called) self.assertFalse(self.playback2.resume.called) @@ -123,10 +122,10 @@ class CorePlaybackTest(unittest.TestCase): def test_stop_changes_state_even_if_track_is_unplayable(self): self.core.playback.current_tl_track = self.unplayable_tl_track - self.core.playback.state = PlaybackState.PAUSED + self.core.playback.state = core.PlaybackState.PAUSED self.core.playback.stop() - self.assertEqual(self.core.playback.state, PlaybackState.STOPPED) + self.assertEqual(self.core.playback.state, core.PlaybackState.STOPPED) self.assertFalse(self.playback1.stop.called) self.assertFalse(self.playback2.stop.called) @@ -146,7 +145,7 @@ class CorePlaybackTest(unittest.TestCase): def test_seek_fails_for_unplayable_track(self): self.core.playback.current_tl_track = self.unplayable_tl_track - self.core.playback.state = PlaybackState.PLAYING + self.core.playback.state = core.PlaybackState.PLAYING success = self.core.playback.seek(1000) self.assertFalse(success) diff --git a/tests/core/playlists_test.py b/tests/core/playlists_test.py index 01c2b881..ac1787fa 100644 --- a/tests/core/playlists_test.py +++ b/tests/core/playlists_test.py @@ -3,8 +3,7 @@ from __future__ import unicode_literals import mock import unittest -from mopidy.backends import base -from mopidy.core import Core +from mopidy import backend, core from mopidy.models import Playlist, Track @@ -12,12 +11,12 @@ class PlaylistsTest(unittest.TestCase): def setUp(self): self.backend1 = mock.Mock() self.backend1.uri_schemes.get.return_value = ['dummy1'] - self.sp1 = mock.Mock(spec=base.BasePlaylistsProvider) + self.sp1 = mock.Mock(spec=backend.PlaylistsProvider) self.backend1.playlists = self.sp1 self.backend2 = mock.Mock() self.backend2.uri_schemes.get.return_value = ['dummy2'] - self.sp2 = mock.Mock(spec=base.BasePlaylistsProvider) + self.sp2 = mock.Mock(spec=backend.PlaylistsProvider) self.backend2.playlists = self.sp2 # A backend without the optional playlists provider @@ -34,7 +33,7 @@ class PlaylistsTest(unittest.TestCase): self.pl2b = Playlist(name='B', tracks=[Track(uri='dummy2:b')]) self.sp2.playlists.get.return_value = [self.pl2a, self.pl2b] - self.core = Core(audio=None, backends=[ + self.core = core.Core(audio=None, backends=[ self.backend3, self.backend1, self.backend2]) def test_get_playlists_combines_result_from_backends(self): diff --git a/tests/core/tracklist_test.py b/tests/core/tracklist_test.py index 596a20a6..80b4dd23 100644 --- a/tests/core/tracklist_test.py +++ b/tests/core/tracklist_test.py @@ -3,8 +3,7 @@ from __future__ import unicode_literals import mock import unittest -from mopidy.backends import base -from mopidy.core import Core +from mopidy import backend, core from mopidy.models import Track @@ -18,10 +17,10 @@ class TracklistTest(unittest.TestCase): self.backend = mock.Mock() self.backend.uri_schemes.get.return_value = ['dummy1'] - self.library = mock.Mock(spec=base.BaseLibraryProvider) + self.library = mock.Mock(spec=backend.LibraryProvider) self.backend.library = self.library - self.core = Core(audio=None, backends=[self.backend]) + self.core = core.Core(audio=None, backends=[self.backend]) self.tl_tracks = self.core.tracklist.add(self.tracks) def test_add_by_uri_looks_up_uri_in_library(self): @@ -72,4 +71,4 @@ class TracklistTest(unittest.TestCase): def test_filter_fails_if_values_is_a_string(self): self.assertRaises(ValueError, self.core.tracklist.filter, uri='a') - # TODO Extract tracklist tests from the base backend tests + # TODO Extract tracklist tests from the local backend tests diff --git a/tests/dummy_backend.py b/tests/dummy_backend.py index 9fdedaa6..0b8e3858 100644 --- a/tests/dummy_backend.py +++ b/tests/dummy_backend.py @@ -8,7 +8,7 @@ from __future__ import unicode_literals import pykka -from mopidy.backends import base +from mopidy import backend from mopidy.models import Playlist, SearchResult @@ -16,7 +16,7 @@ def create_dummy_backend_proxy(config=None, audio=None): return DummyBackend.start(config=config, audio=audio).proxy() -class DummyBackend(pykka.ThreadingActor, base.Backend): +class DummyBackend(pykka.ThreadingActor, backend.Backend): def __init__(self, config, audio): super(DummyBackend, self).__init__() @@ -27,7 +27,7 @@ class DummyBackend(pykka.ThreadingActor, base.Backend): self.uri_schemes = ['dummy'] -class DummyLibraryProvider(base.BaseLibraryProvider): +class DummyLibraryProvider(backend.LibraryProvider): root_directory_name = 'dummy' def __init__(self, *args, **kwargs): @@ -53,7 +53,7 @@ class DummyLibraryProvider(base.BaseLibraryProvider): return self.dummy_search_result -class DummyPlaybackProvider(base.BasePlaybackProvider): +class DummyPlaybackProvider(backend.PlaybackProvider): def __init__(self, *args, **kwargs): super(DummyPlaybackProvider, self).__init__(*args, **kwargs) self._time_position = 0 @@ -80,7 +80,7 @@ class DummyPlaybackProvider(base.BasePlaybackProvider): return self._time_position -class DummyPlaylistsProvider(base.BasePlaylistsProvider): +class DummyPlaylistsProvider(backend.PlaylistsProvider): def create(self, name): playlist = Playlist(name=name, uri='dummy:%s' % name) self._playlists.append(playlist) diff --git a/tests/local/events_test.py b/tests/local/events_test.py index 60c0b146..f0fd0959 100644 --- a/tests/local/events_test.py +++ b/tests/local/events_test.py @@ -5,14 +5,13 @@ import unittest import mock import pykka -from mopidy import audio, core -from mopidy.backends import listener +from mopidy import audio, backend, core from mopidy.local import actor from tests import path_to_data_dir -@mock.patch.object(listener.BackendListener, 'send') +@mock.patch.object(backend.BackendListener, 'send') class LocalBackendEventsTest(unittest.TestCase): config = { 'local': {