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
from .actor import Audio
from .dummy import DummyAudio
from .listener import AudioListener
from .constants import PlaybackState
from .utils import (

View File

@ -15,11 +15,10 @@ import mock
import pykka
from mopidy import audio
from mopidy.audio import dummy as dummy_audio
from mopidy.audio.constants import PlaybackState
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
# 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
from .constants import PlaybackState
from .listener import AudioListener
from mopidy import audio
def create_proxy(config=None, mixer=None):
return DummyAudio.start(config, mixer).proxy()
class DummyAudio(pykka.ThreadingActor):
def __init__(self, config=None, mixer=None):
super(DummyAudio, self).__init__()
self.state = PlaybackState.STOPPED
self.state = audio.PlaybackState.STOPPED
self._volume = 0
self._position = 0
self._callback = None
@ -42,21 +45,21 @@ class DummyAudio(pykka.ThreadingActor):
def set_position(self, position):
self._position = position
AudioListener.send('position_changed', position=position)
audio.AudioListener.send('position_changed', position=position)
return True
def start_playback(self):
return self._change_state(PlaybackState.PLAYING)
return self._change_state(audio.PlaybackState.PLAYING)
def pause_playback(self):
return self._change_state(PlaybackState.PAUSED)
return self._change_state(audio.PlaybackState.PAUSED)
def prepare_change(self):
self._uri = None
return True
def stop_playback(self):
return self._change_state(PlaybackState.STOPPED)
return self._change_state(audio.PlaybackState.STOPPED)
def get_volume(self):
return self._volume
@ -84,21 +87,22 @@ class DummyAudio(pykka.ThreadingActor):
if not self._uri:
return False
if self.state == PlaybackState.STOPPED and self._uri:
AudioListener.send('position_changed', position=0)
AudioListener.send('stream_changed', uri=self._uri)
if self.state == audio.PlaybackState.STOPPED and self._uri:
audio.AudioListener.send('position_changed', position=0)
audio.AudioListener.send('stream_changed', uri=self._uri)
if new_state == PlaybackState.STOPPED:
if new_state == audio.PlaybackState.STOPPED:
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
AudioListener.send('state_changed', old_state=old_state,
new_state=new_state, target_state=None)
audio.AudioListener.send(
'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...']
AudioListener.send('tags_changed', tags=['audio-codec'])
audio.AudioListener.send('tags_changed', tags=['audio-codec'])
return self._state_change_result
@ -114,9 +118,9 @@ class DummyAudio(pykka.ThreadingActor):
if not self._uri or not self._callback:
self._tags = {}
AudioListener.send('reached_end_of_stream')
audio.AudioListener.send('reached_end_of_stream')
else:
AudioListener.send('position_changed', position=0)
AudioListener.send('stream_changed', uri=self._uri)
audio.AudioListener.send('position_changed', position=0)
audio.AudioListener.send('stream_changed', uri=self._uri)
return wrapper

View File

@ -6,10 +6,10 @@ import mock
import pykka
from mopidy import audio, backend, core
from mopidy import backend, core
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')
@ -24,7 +24,7 @@ class LocalBackendEventsTest(unittest.TestCase):
}
def setUp(self): # noqa: N802
self.audio = audio.DummyAudio.start().proxy()
self.audio = dummy_audio.create_proxy()
self.backend = actor.LocalBackend.start(
config=self.config, audio=self.audio).proxy()
self.core = core.Core.start(backends=[self.backend]).proxy()

View File

@ -7,12 +7,12 @@ import mock
import pykka
from mopidy import audio, core
from mopidy import core
from mopidy.core import PlaybackState
from mopidy.local import actor
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
@ -40,7 +40,7 @@ class LocalPlaybackProviderTest(unittest.TestCase):
self.tracklist.add([track])
def setUp(self): # noqa: N802
self.audio = audio.DummyAudio.start().proxy()
self.audio = dummy_audio.create_proxy()
self.backend = actor.LocalBackend.start(
config=self.config, audio=self.audio).proxy()
self.core = core.Core(backends=[self.backend])

View File

@ -7,11 +7,11 @@ import unittest
import pykka
from mopidy import audio, core
from mopidy import core
from mopidy.local import actor
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
@ -29,7 +29,7 @@ class LocalPlaylistsProviderTest(unittest.TestCase):
self.config['local']['playlists_dir'] = tempfile.mkdtemp()
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(
config=self.config, audio=self.audio).proxy()
self.core = core.Core(backends=[self.backend])

View File

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