Merge pull request #983 from jodal/feature/remove-test-only-code

Remove test-only code
This commit is contained in:
Thomas Adamcik 2015-02-13 01:31:11 +01:00
commit e6fe9f40e9
6 changed files with 81 additions and 52 deletions

View File

@ -21,11 +21,8 @@ class MixerController(object):
The volume scale is linear.
"""
if self._mixer:
if self._mixer is not None:
return self._mixer.get_volume().get()
else:
# For testing
return self._volume
def set_volume(self, volume):
"""Set the volume.
@ -34,31 +31,22 @@ class MixerController(object):
The volume scale is linear.
"""
if self._mixer:
if self._mixer is not None:
self._mixer.set_volume(volume)
else:
# For testing
self._volume = volume
def get_mute(self):
"""Get mute state.
:class:`True` if muted, :class:`False` otherwise.
:class:`True` if muted, :class:`False` unmuted, :class:`None` if
unknown.
"""
if self._mixer:
if self._mixer is not None:
return self._mixer.get_mute().get()
else:
# For testing
return self._mute
def set_mute(self, mute):
"""Set mute state.
:class:`True` to mute, :class:`False` to unmute.
"""
mute = bool(mute)
if self._mixer:
self._mixer.set_mute(mute)
else:
# For testing
self._mute = mute
if self._mixer is not None:
self._mixer.set_mute(bool(mute))

View File

@ -2,6 +2,8 @@ from __future__ import absolute_import, unicode_literals
import logging
import pykka
from mopidy import listener
@ -147,3 +149,23 @@ class MixerListener(listener.Listener):
:type mute: bool
"""
pass
class DummyMixer(pykka.ThreadingActor, Mixer):
def __init__(self):
super(DummyMixer, self).__init__()
self._volume = None
self._mute = None
def get_volume(self):
return self._volume
def set_volume(self, volume):
self._volume = volume
def get_mute(self):
return self._mute
def set_mute(self, mute):
self._mute = mute

View File

@ -2,27 +2,34 @@ from __future__ import absolute_import, unicode_literals
import unittest
from mopidy import core
import mock
from mopidy import core, mixer
class CoreMixerTest(unittest.TestCase):
def setUp(self): # noqa: N802
self.core = core.Core(mixer=None, backends=[])
self.mixer = mock.Mock(spec=mixer.Mixer)
self.core = core.Core(mixer=self.mixer, backends=[])
def test_volume(self):
self.assertEqual(self.core.mixer.get_volume(), None)
self.core.mixer.set_volume(30)
def test_get_volume(self):
self.mixer.get_volume.return_value.get.return_value = 30
self.assertEqual(self.core.mixer.get_volume(), 30)
self.mixer.get_volume.assert_called_once_with()
self.core.mixer.set_volume(70)
def test_set_volume(self):
self.core.mixer.set_volume(30)
self.assertEqual(self.core.mixer.get_volume(), 70)
self.mixer.set_volume.assert_called_once_with(30)
def test_mute(self):
self.assertEqual(self.core.mixer.get_mute(), False)
self.core.mixer.set_mute(True)
def test_get_mute(self):
self.mixer.get_mute.return_value.get.return_value = True
self.assertEqual(self.core.mixer.get_mute(), True)
self.mixer.get_mute.assert_called_once_with()
def test_set_mute(self):
self.core.mixer.set_mute(True)
self.mixer.set_mute.assert_called_once_with(True)

View File

@ -6,7 +6,7 @@ import mock
import pykka
from mopidy import core
from mopidy import core, mixer
from mopidy.backend import dummy
from mopidy.mpd import session, uri_mapper
@ -32,8 +32,10 @@ class BaseTestCase(unittest.TestCase):
}
def setUp(self): # noqa: N802
self.mixer = mixer.DummyMixer.start().proxy()
self.backend = dummy.create_dummy_backend_proxy()
self.core = core.Core.start(backends=[self.backend]).proxy()
self.core = core.Core.start(
mixer=self.mixer, backends=[self.backend]).proxy()
self.uri_map = uri_mapper.MpdUriMapper(self.core)
self.connection = MockConnection()

View File

@ -4,7 +4,7 @@ import unittest
import pykka
from mopidy import core
from mopidy import core, mixer
from mopidy.backend import dummy
from mopidy.core import PlaybackState
from mopidy.models import Track
@ -21,8 +21,10 @@ STOPPED = PlaybackState.STOPPED
class StatusHandlerTest(unittest.TestCase):
def setUp(self): # noqa: N802
self.mixer = mixer.DummyMixer.start().proxy()
self.backend = dummy.create_dummy_backend_proxy()
self.core = core.Core.start(backends=[self.backend]).proxy()
self.core = core.Core.start(
mixer=self.mixer, backends=[self.backend]).proxy()
self.dispatcher = dispatcher.MpdDispatcher(core=self.core)
self.context = self.dispatcher.context

View File

@ -13,6 +13,9 @@ from mopidy.utils import jsonrpc
class Calculator(object):
def __init__(self):
self._mem = None
def model(self):
return 'TI83'
@ -23,6 +26,12 @@ class Calculator(object):
def sub(self, a, b):
return a - b
def set_mem(self, value):
self._mem = value
def get_mem(self):
return self._mem
def describe(self):
return {
'add': 'Returns the sum of the terms',
@ -43,13 +52,14 @@ class JsonRpcTestBase(unittest.TestCase):
def setUp(self): # noqa: N802
self.backend = dummy.create_dummy_backend_proxy()
self.core = core.Core.start(backends=[self.backend]).proxy()
self.calc = Calculator()
self.jrw = jsonrpc.JsonRpcWrapper(
objects={
'hello': lambda: 'Hello, world!',
'calc': Calculator(),
'calc': self.calc,
'core': self.core,
'core.mixer': self.core.mixer,
'core.playback': self.core.playback,
'core.tracklist': self.core.tracklist,
'get_uri_schemes': self.core.get_uri_schemes,
},
@ -188,12 +198,12 @@ class JsonRpcSingleCommandTest(JsonRpcTestBase):
def test_call_method_on_actor_member(self):
request = {
'jsonrpc': '2.0',
'method': 'core.mixer.get_volume',
'method': 'core.playback.get_time_position',
'id': 1,
}
response = self.jrw.handle_data(request)
self.assertEqual(response['result'], None)
self.assertEqual(response['result'], 0)
def test_call_method_which_is_a_directly_mounted_actor_member(self):
# 'get_uri_schemes' isn't a regular callable, but a Pykka
@ -215,26 +225,24 @@ class JsonRpcSingleCommandTest(JsonRpcTestBase):
def test_call_method_with_positional_params(self):
request = {
'jsonrpc': '2.0',
'method': 'core.mixer.set_volume',
'params': [37],
'method': 'calc.add',
'params': [3, 4],
'id': 1,
}
response = self.jrw.handle_data(request)
self.assertEqual(response['result'], None)
self.assertEqual(self.core.mixer.get_volume().get(), 37)
self.assertEqual(response['result'], 7)
def test_call_methods_with_named_params(self):
request = {
'jsonrpc': '2.0',
'method': 'core.mixer.set_volume',
'params': {'volume': 37},
'method': 'calc.add',
'params': {'a': 3, 'b': 4},
'id': 1,
}
response = self.jrw.handle_data(request)
self.assertEqual(response['result'], None)
self.assertEqual(self.core.mixer.get_volume().get(), 37)
self.assertEqual(response['result'], 7)
class JsonRpcSingleNotificationTest(JsonRpcTestBase):
@ -248,17 +256,17 @@ class JsonRpcSingleNotificationTest(JsonRpcTestBase):
self.assertIsNone(response)
def test_notification_makes_an_observable_change(self):
self.assertEqual(self.core.mixer.get_volume().get(), None)
self.assertEqual(self.calc.get_mem(), None)
request = {
'jsonrpc': '2.0',
'method': 'core.mixer.set_volume',
'method': 'calc.set_mem',
'params': [37],
}
response = self.jrw.handle_data(request)
self.assertIsNone(response)
self.assertEqual(self.core.mixer.get_volume().get(), 37)
self.assertEqual(self.calc.get_mem(), 37)
def test_notification_unknown_method_returns_nothing(self):
request = {
@ -526,7 +534,7 @@ class JsonRpcBatchErrorTest(JsonRpcTestBase):
def test_batch_of_both_successfull_and_failing_requests(self):
request = [
# Call with positional params
{'jsonrpc': '2.0', 'method': 'core.mixer.set_volume',
{'jsonrpc': '2.0', 'method': 'core.playback.seek',
'params': [47], 'id': '1'},
# Notification
{'jsonrpc': '2.0', 'method': 'core.tracklist.set_consume',
@ -547,7 +555,7 @@ class JsonRpcBatchErrorTest(JsonRpcTestBase):
self.assertEqual(len(response), 5)
response = dict((row['id'], row) for row in response)
self.assertEqual(response['1']['result'], None)
self.assertEqual(response['1']['result'], False)
self.assertEqual(response['2']['result'], None)
self.assertEqual(response[None]['error']['code'], -32600)
self.assertEqual(response['5']['error']['code'], -32601)