From e4ef6d13caa70f91c51c2cb30462754f117e8ddf Mon Sep 17 00:00:00 2001 From: Stein Magnus Jodal Date: Fri, 13 Mar 2015 21:04:37 +0100 Subject: [PATCH 1/3] core: Correct mixer.set_volume() docstring --- mopidy/core/mixer.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mopidy/core/mixer.py b/mopidy/core/mixer.py index 1f5ada9e..224c09df 100644 --- a/mopidy/core/mixer.py +++ b/mopidy/core/mixer.py @@ -25,10 +25,11 @@ class MixerController(object): def set_volume(self, volume): """Set the volume. - The volume is defined as an integer in range [0..100] or :class:`None` - if the mixer is disabled. + The volume is defined as an integer in range [0..100]. The volume scale is linear. + + Returns :class:`True` if call is successful, otherwise :class:`False`. """ if self._mixer is None: return False From b29f9e10c4ada28a07a9c977e9032d834795aa76 Mon Sep 17 00:00:00 2001 From: Stein Magnus Jodal Date: Fri, 13 Mar 2015 21:18:28 +0100 Subject: [PATCH 2/3] core: get_mute() with no mixer returns None ...and not False, because the mute state is unknown (None) and not unmuted (False) when there is no mixer. Note that this change does not affect the MPD responses. --- mopidy/core/mixer.py | 4 +--- tests/core/test_mixer.py | 12 ++++++------ tests/mpd/protocol/test_audio_output.py | 10 ++++++---- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/mopidy/core/mixer.py b/mopidy/core/mixer.py index 224c09df..3388d706 100644 --- a/mopidy/core/mixer.py +++ b/mopidy/core/mixer.py @@ -42,9 +42,7 @@ class MixerController(object): :class:`True` if muted, :class:`False` unmuted, :class:`None` if unknown. """ - if self._mixer is None: - return False - else: + if self._mixer is not None: return self._mixer.get_mute().get() def set_mute(self, mute): diff --git a/tests/core/test_mixer.py b/tests/core/test_mixer.py index 6485f3e8..c4126eaa 100644 --- a/tests/core/test_mixer.py +++ b/tests/core/test_mixer.py @@ -42,17 +42,17 @@ class CoreNoneMixerTest(unittest.TestCase): def setUp(self): # noqa: N802 self.core = core.Core(mixer=None, backends=[]) - def test_get_volume_return_none(self): + def test_get_volume_return_none_because_it_is_unknown(self): self.assertEqual(self.core.mixer.get_volume(), None) - def test_set_volume_return_false(self): + def test_set_volume_return_false_because_it_failed(self): self.assertEqual(self.core.mixer.set_volume(30), False) - def test_get_set_mute_return_proper_state(self): - self.assertEqual(self.core.mixer.set_mute(False), False) - self.assertEqual(self.core.mixer.get_mute(), False) + def test_get_mute_return_none_because_it_is_unknown(self): + self.assertEqual(self.core.mixer.get_mute(), None) + + def test_set_mute_return_false_because_it_failed(self): self.assertEqual(self.core.mixer.set_mute(True), False) - self.assertEqual(self.core.mixer.get_mute(), False) @mock.patch.object(mixer.MixerListener, 'send') diff --git a/tests/mpd/protocol/test_audio_output.py b/tests/mpd/protocol/test_audio_output.py index 322bf181..b42b4c56 100644 --- a/tests/mpd/protocol/test_audio_output.py +++ b/tests/mpd/protocol/test_audio_output.py @@ -90,20 +90,22 @@ class AudioOutputHandlerNoneMixerTest(protocol.BaseTestCase): enable_mixer = False def test_enableoutput(self): - self.core.mixer.set_mute(False) + self.assertEqual(self.core.mixer.get_mute().get(), None) self.send_request('enableoutput "0"') self.assertInResponse( 'ACK [52@0] {enableoutput} problems enabling output') - self.assertEqual(self.core.mixer.get_mute().get(), False) + + self.assertEqual(self.core.mixer.get_mute().get(), None) def test_disableoutput(self): - self.core.mixer.set_mute(True) + self.assertEqual(self.core.mixer.get_mute().get(), None) self.send_request('disableoutput "0"') self.assertInResponse( 'ACK [52@0] {disableoutput} problems disabling output') - self.assertEqual(self.core.mixer.get_mute().get(), False) + + self.assertEqual(self.core.mixer.get_mute().get(), None) def test_outputs_when_unmuted(self): self.core.mixer.set_mute(False) From 9adb2c86a9ee2df65c280a0e042d045c6437b38e Mon Sep 17 00:00:00 2001 From: Stein Magnus Jodal Date: Fri, 13 Mar 2015 21:20:25 +0100 Subject: [PATCH 3/3] mpd: Make code read better The result of set_mute() and set_volume() is always True or False, never another falsy value like None. --- mopidy/mpd/protocol/audio_output.py | 6 +++--- mopidy/mpd/protocol/playback.py | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/mopidy/mpd/protocol/audio_output.py b/mopidy/mpd/protocol/audio_output.py index 6ffedcf1..565ea3d0 100644 --- a/mopidy/mpd/protocol/audio_output.py +++ b/mopidy/mpd/protocol/audio_output.py @@ -14,7 +14,7 @@ def disableoutput(context, outputid): """ if outputid == 0: success = context.core.mixer.set_mute(False).get() - if success is False: + if not success: raise exceptions.MpdSystemError('problems disabling output') else: raise exceptions.MpdNoExistError('No such audio output') @@ -31,7 +31,7 @@ def enableoutput(context, outputid): """ if outputid == 0: success = context.core.mixer.set_mute(True).get() - if success is False: + if not success: raise exceptions.MpdSystemError('problems enabling output') else: raise exceptions.MpdNoExistError('No such audio output') @@ -49,7 +49,7 @@ def toggleoutput(context, outputid): if outputid == 0: mute_status = context.core.mixer.get_mute().get() success = context.core.mixer.set_mute(not mute_status) - if success is False: + if not success: raise exceptions.MpdSystemError('problems toggling output') else: raise exceptions.MpdNoExistError('No such audio output') diff --git a/mopidy/mpd/protocol/playback.py b/mopidy/mpd/protocol/playback.py index 4cf8b2e8..86f2e36b 100644 --- a/mopidy/mpd/protocol/playback.py +++ b/mopidy/mpd/protocol/playback.py @@ -397,7 +397,7 @@ def setvol(context, volume): # NOTE: we use INT as clients can pass in +N etc. value = min(max(0, volume), 100) success = context.core.mixer.set_volume(value).get() - if success is False: + if not success: raise exceptions.MpdSystemError('problems setting volume')