Merge branch 'master' into gstreamer
This commit is contained in:
commit
8b1f85b576
@ -4,6 +4,11 @@ Changes
|
||||
|
||||
This change log is used to track all major changes to Mopidy.
|
||||
|
||||
0.1.0a1 (unreleased)
|
||||
====================
|
||||
|
||||
- Changed backend API for get/filter/find_exact/search.
|
||||
|
||||
|
||||
0.1.0a0 (2010-03-27)
|
||||
====================
|
||||
|
||||
@ -75,5 +75,3 @@ The test script should ask for your username and password (which must be for a
|
||||
Spotify Premium account), ask for a search query, list all your playlists with
|
||||
tracks, play 10s from a random song from the search result, pause for two
|
||||
seconds, play for five more seconds, and quit.
|
||||
o stop Mopidy, press ``CTRL+C``.
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
from mopidy import settings as raw_settings
|
||||
|
||||
def get_version():
|
||||
return u'0.1.0a0'
|
||||
return u'0.1.0a1'
|
||||
|
||||
def get_mpd_protocol_version():
|
||||
return u'0.16.0'
|
||||
|
||||
@ -26,12 +26,12 @@ class DenonMixer(BaseMixer):
|
||||
- :attr:`mopidy.settings.MIXER_EXT_PORT` -- Example: ``/dev/ttyUSB0``
|
||||
"""
|
||||
|
||||
def __init__(self):
|
||||
def __init__(self, device=None):
|
||||
"""
|
||||
Connects using the serial specifications from Denon's RS-232 Protocol
|
||||
specification: 9600bps 8N1.
|
||||
"""
|
||||
self._device = Serial(port=MIXER_EXT_PORT, timeout=0.2)
|
||||
self._device = device or Serial(port=MIXER_EXT_PORT, timeout=0.2)
|
||||
self._levels = ['99'] + ["%(#)02d" % {'#': v} for v in range(0, 99)]
|
||||
self._volume = 0
|
||||
self._lock = Lock()
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
import unittest
|
||||
|
||||
from mopidy.mixers.denon import DenonMixer
|
||||
from tests.mixers.dummy_test import BaseMixerTest
|
||||
|
||||
class DenonMixerDeviceMock(object):
|
||||
def __init__(self):
|
||||
@ -23,28 +24,16 @@ class DenonMixerDeviceMock(object):
|
||||
def open(self):
|
||||
self._open = True
|
||||
|
||||
class DenonMixerTest(unittest.TestCase):
|
||||
class DenonMixerTest(BaseMixerTest):
|
||||
ACTUAL_MAX = 99
|
||||
|
||||
INITIAL = 1
|
||||
|
||||
def setUp(self):
|
||||
self.m = DenonMixer()
|
||||
self.m._device = DenonMixerDeviceMock()
|
||||
|
||||
def test_volume_set_to_min(self):
|
||||
self.m.volume = 0
|
||||
self.assertEqual(self.m.volume, 0)
|
||||
|
||||
def test_volume_set_to_max(self):
|
||||
self.m.volume = 100
|
||||
self.assertEqual(self.m.volume, 99)
|
||||
|
||||
def test_volume_set_to_below_min_results_in_min(self):
|
||||
self.m.volume = -10
|
||||
self.assertEqual(self.m.volume, 0)
|
||||
|
||||
def test_volume_set_to_above_max_results_in_max(self):
|
||||
self.m.volume = 110
|
||||
self.assertEqual(self.m.volume, 99)
|
||||
self.device = DenonMixerDeviceMock()
|
||||
self.mixer = DenonMixer(device=self.device)
|
||||
|
||||
def test_reopen_device(self):
|
||||
self.m._device._open = False
|
||||
self.m.volume = 10
|
||||
self.assertTrue(self.m._device._open)
|
||||
self.device._open = False
|
||||
self.mixer.volume = 10
|
||||
self.assertTrue(self.device.isOpen())
|
||||
|
||||
@ -3,24 +3,32 @@ import unittest
|
||||
from mopidy.mixers.dummy import DummyMixer
|
||||
|
||||
class BaseMixerTest(unittest.TestCase):
|
||||
def setUp(self):
|
||||
self.m = DummyMixer()
|
||||
MIN = 0
|
||||
MAX = 100
|
||||
|
||||
def test_volume_is_None_initially(self):
|
||||
self.assertEqual(self.m.volume, None)
|
||||
ACTUAL_MIN = MIN
|
||||
ACTUAL_MAX = MAX
|
||||
|
||||
INITIAL = None
|
||||
|
||||
def setUp(self):
|
||||
self.mixer = DummyMixer()
|
||||
|
||||
def test_initial_volume(self):
|
||||
self.assertEqual(self.mixer.volume, self.INITIAL)
|
||||
|
||||
def test_volume_set_to_min(self):
|
||||
self.m.volume = 0
|
||||
self.assertEqual(self.m.volume, 0)
|
||||
self.mixer.volume = self.MIN
|
||||
self.assertEqual(self.mixer.volume, self.ACTUAL_MIN)
|
||||
|
||||
def test_volume_set_to_max(self):
|
||||
self.m.volume = 100
|
||||
self.assertEqual(self.m.volume, 100)
|
||||
self.mixer.volume = self.MAX
|
||||
self.assertEqual(self.mixer.volume, self.ACTUAL_MAX)
|
||||
|
||||
def test_volume_set_to_below_min_results_in_min(self):
|
||||
self.m.volume = -10
|
||||
self.assertEqual(self.m.volume, 0)
|
||||
self.mixer.volume = -10
|
||||
self.assertEqual(self.mixer.volume, self.ACTUAL_MIN)
|
||||
|
||||
def test_volume_set_to_above_max_results_in_max(self):
|
||||
self.m.volume = 110
|
||||
self.assertEqual(self.m.volume, 100)
|
||||
self.mixer.volume = self.MAX + 10
|
||||
self.assertEqual(self.mixer.volume, self.ACTUAL_MAX)
|
||||
|
||||
@ -8,7 +8,8 @@ class VersionTest(unittest.TestCase):
|
||||
SV(get_version())
|
||||
|
||||
def test_versions_can_be_strictly_ordered(self):
|
||||
self.assert_(SV(get_version()) < SV('0.1.0a1'))
|
||||
self.assert_(SV(get_version()) > SV('0.1.0a0'))
|
||||
self.assert_(SV(get_version()) < SV('0.1.0a2'))
|
||||
self.assert_(SV('0.1.0a1') < SV('0.1.0'))
|
||||
self.assert_(SV('0.1.0') < SV('0.1.1'))
|
||||
self.assert_(SV('0.1.1') < SV('0.2.0'))
|
||||
|
||||
Loading…
Reference in New Issue
Block a user