audio: Move DummyAudio into tests package

This commit is contained in:
Stein Magnus Jodal 2015-02-13 01:47:15 +01:00
parent b554a64aad
commit 5270aa65e2
7 changed files with 36 additions and 34 deletions

View File

@ -2,7 +2,6 @@ from __future__ import absolute_import, unicode_literals
# flake8: noqa # flake8: noqa
from .actor import Audio from .actor import Audio
from .dummy import DummyAudio
from .listener import AudioListener from .listener import AudioListener
from .constants import PlaybackState from .constants import PlaybackState
from .utils import ( from .utils import (

View File

@ -15,11 +15,10 @@ import mock
import pykka import pykka
from mopidy import audio from mopidy import audio
from mopidy.audio import dummy as dummy_audio
from mopidy.audio.constants import PlaybackState from mopidy.audio.constants import PlaybackState
from mopidy.utils.path import path_to_uri from mopidy.utils.path import path_to_uri
from tests import path_to_data_dir from tests import dummy_audio, path_to_data_dir
# We want to make sure both our real audio class and the fake one behave # We want to make sure both our real audio class and the fake one behave
# correctly. So each test is first run against the real class, then repeated # correctly. So each test is first run against the real class, then repeated

View File

@ -8,14 +8,17 @@ from __future__ import absolute_import, unicode_literals
import pykka import pykka
from .constants import PlaybackState from mopidy import audio
from .listener import AudioListener
def create_proxy(config=None, mixer=None):
return DummyAudio.start(config, mixer).proxy()
class DummyAudio(pykka.ThreadingActor): class DummyAudio(pykka.ThreadingActor):
def __init__(self, config=None, mixer=None): def __init__(self, config=None, mixer=None):
super(DummyAudio, self).__init__() super(DummyAudio, self).__init__()
self.state = PlaybackState.STOPPED self.state = audio.PlaybackState.STOPPED
self._volume = 0 self._volume = 0
self._position = 0 self._position = 0
self._callback = None self._callback = None
@ -42,21 +45,21 @@ class DummyAudio(pykka.ThreadingActor):
def set_position(self, position): def set_position(self, position):
self._position = position self._position = position
AudioListener.send('position_changed', position=position) audio.AudioListener.send('position_changed', position=position)
return True return True
def start_playback(self): def start_playback(self):
return self._change_state(PlaybackState.PLAYING) return self._change_state(audio.PlaybackState.PLAYING)
def pause_playback(self): def pause_playback(self):
return self._change_state(PlaybackState.PAUSED) return self._change_state(audio.PlaybackState.PAUSED)
def prepare_change(self): def prepare_change(self):
self._uri = None self._uri = None
return True return True
def stop_playback(self): def stop_playback(self):
return self._change_state(PlaybackState.STOPPED) return self._change_state(audio.PlaybackState.STOPPED)
def get_volume(self): def get_volume(self):
return self._volume return self._volume
@ -84,21 +87,22 @@ class DummyAudio(pykka.ThreadingActor):
if not self._uri: if not self._uri:
return False return False
if self.state == PlaybackState.STOPPED and self._uri: if self.state == audio.PlaybackState.STOPPED and self._uri:
AudioListener.send('position_changed', position=0) audio.AudioListener.send('position_changed', position=0)
AudioListener.send('stream_changed', uri=self._uri) audio.AudioListener.send('stream_changed', uri=self._uri)
if new_state == PlaybackState.STOPPED: if new_state == audio.PlaybackState.STOPPED:
self._uri = None self._uri = None
AudioListener.send('stream_changed', uri=self._uri) audio.AudioListener.send('stream_changed', uri=self._uri)
old_state, self.state = self.state, new_state old_state, self.state = self.state, new_state
AudioListener.send('state_changed', old_state=old_state, audio.AudioListener.send(
new_state=new_state, target_state=None) 'state_changed',
old_state=old_state, new_state=new_state, target_state=None)
if new_state == PlaybackState.PLAYING: if new_state == audio.PlaybackState.PLAYING:
self._tags['audio-codec'] = [u'fake info...'] self._tags['audio-codec'] = [u'fake info...']
AudioListener.send('tags_changed', tags=['audio-codec']) audio.AudioListener.send('tags_changed', tags=['audio-codec'])
return self._state_change_result return self._state_change_result
@ -114,9 +118,9 @@ class DummyAudio(pykka.ThreadingActor):
if not self._uri or not self._callback: if not self._uri or not self._callback:
self._tags = {} self._tags = {}
AudioListener.send('reached_end_of_stream') audio.AudioListener.send('reached_end_of_stream')
else: else:
AudioListener.send('position_changed', position=0) audio.AudioListener.send('position_changed', position=0)
AudioListener.send('stream_changed', uri=self._uri) audio.AudioListener.send('stream_changed', uri=self._uri)
return wrapper return wrapper

View File

@ -6,10 +6,10 @@ import mock
import pykka import pykka
from mopidy import audio, backend, core from mopidy import backend, core
from mopidy.local import actor from mopidy.local import actor
from tests import path_to_data_dir from tests import dummy_audio, path_to_data_dir
@mock.patch.object(backend.BackendListener, 'send') @mock.patch.object(backend.BackendListener, 'send')
@ -24,7 +24,7 @@ class LocalBackendEventsTest(unittest.TestCase):
} }
def setUp(self): # noqa: N802 def setUp(self): # noqa: N802
self.audio = audio.DummyAudio.start().proxy() self.audio = dummy_audio.create_proxy()
self.backend = actor.LocalBackend.start( self.backend = actor.LocalBackend.start(
config=self.config, audio=self.audio).proxy() config=self.config, audio=self.audio).proxy()
self.core = core.Core.start(backends=[self.backend]).proxy() self.core = core.Core.start(backends=[self.backend]).proxy()

View File

@ -7,12 +7,12 @@ import mock
import pykka import pykka
from mopidy import audio, core from mopidy import core
from mopidy.core import PlaybackState from mopidy.core import PlaybackState
from mopidy.local import actor from mopidy.local import actor
from mopidy.models import Track from mopidy.models import Track
from tests import path_to_data_dir from tests import dummy_audio, path_to_data_dir
from tests.local import generate_song, populate_tracklist from tests.local import generate_song, populate_tracklist
@ -40,7 +40,7 @@ class LocalPlaybackProviderTest(unittest.TestCase):
self.tracklist.add([track]) self.tracklist.add([track])
def setUp(self): # noqa: N802 def setUp(self): # noqa: N802
self.audio = audio.DummyAudio.start().proxy() self.audio = dummy_audio.create_proxy()
self.backend = actor.LocalBackend.start( self.backend = actor.LocalBackend.start(
config=self.config, audio=self.audio).proxy() config=self.config, audio=self.audio).proxy()
self.core = core.Core(backends=[self.backend]) self.core = core.Core(backends=[self.backend])

View File

@ -7,11 +7,11 @@ import unittest
import pykka import pykka
from mopidy import audio, core from mopidy import core
from mopidy.local import actor from mopidy.local import actor
from mopidy.models import Playlist, Track from mopidy.models import Playlist, Track
from tests import path_to_data_dir from tests import dummy_audio, path_to_data_dir
from tests.local import generate_song from tests.local import generate_song
@ -29,7 +29,7 @@ class LocalPlaylistsProviderTest(unittest.TestCase):
self.config['local']['playlists_dir'] = tempfile.mkdtemp() self.config['local']['playlists_dir'] = tempfile.mkdtemp()
self.playlists_dir = self.config['local']['playlists_dir'] self.playlists_dir = self.config['local']['playlists_dir']
self.audio = audio.DummyAudio.start().proxy() self.audio = dummy_audio.create_proxy()
self.backend = actor.LocalBackend.start( self.backend = actor.LocalBackend.start(
config=self.config, audio=self.audio).proxy() config=self.config, audio=self.audio).proxy()
self.core = core.Core(backends=[self.backend]) self.core = core.Core(backends=[self.backend])

View File

@ -5,12 +5,12 @@ import unittest
import pykka import pykka
from mopidy import audio, core from mopidy import core
from mopidy.core import PlaybackState from mopidy.core import PlaybackState
from mopidy.local import actor from mopidy.local import actor
from mopidy.models import Playlist, TlTrack, Track from mopidy.models import Playlist, TlTrack, Track
from tests import path_to_data_dir from tests import dummy_audio, path_to_data_dir
from tests.local import generate_song, populate_tracklist from tests.local import generate_song, populate_tracklist
@ -27,7 +27,7 @@ class LocalTracklistProviderTest(unittest.TestCase):
Track(uri=generate_song(i), length=4464) for i in range(1, 4)] Track(uri=generate_song(i), length=4464) for i in range(1, 4)]
def setUp(self): # noqa: N802 def setUp(self): # noqa: N802
self.audio = audio.DummyAudio.start().proxy() self.audio = dummy_audio.create_proxy()
self.backend = actor.LocalBackend.start( self.backend = actor.LocalBackend.start(
config=self.config, audio=self.audio).proxy() config=self.config, audio=self.audio).proxy()
self.core = core.Core(mixer=None, backends=[self.backend]) self.core = core.Core(mixer=None, backends=[self.backend])