Merge branch 'hotfix/GH-18' into release/0.1.1
This commit is contained in:
commit
e4c3a73f8f
@ -142,7 +142,7 @@ class BasePlaybackController(object):
|
||||
random.shuffle(self._shuffled)
|
||||
self._first_shuffle = False
|
||||
|
||||
if self._shuffled:
|
||||
if self.random and self._shuffled:
|
||||
return self._shuffled[0]
|
||||
|
||||
if self.current_cp_track is None:
|
||||
@ -195,7 +195,7 @@ class BasePlaybackController(object):
|
||||
random.shuffle(self._shuffled)
|
||||
self._first_shuffle = False
|
||||
|
||||
if self._shuffled:
|
||||
if self.random and self._shuffled:
|
||||
return self._shuffled[0]
|
||||
|
||||
if self.current_cp_track is None:
|
||||
@ -311,11 +311,9 @@ class BasePlaybackController(object):
|
||||
return
|
||||
|
||||
original_cp_track = self.current_cp_track
|
||||
|
||||
if self.cp_track_at_eot:
|
||||
self.play(self.cp_track_at_eot)
|
||||
|
||||
if self.random and self.current_cp_track in self._shuffled:
|
||||
self._shuffled.remove(self.current_cp_track)
|
||||
else:
|
||||
self.stop()
|
||||
self.current_cp_track = None
|
||||
@ -351,9 +349,6 @@ class BasePlaybackController(object):
|
||||
self.stop()
|
||||
self.current_cp_track = None
|
||||
|
||||
if self.random and self.current_cp_track in self._shuffled:
|
||||
self._shuffled.remove(self.current_cp_track)
|
||||
|
||||
def pause(self):
|
||||
"""Pause playback."""
|
||||
if self.state == self.PLAYING and self._pause():
|
||||
|
||||
43
tests/frontends/mpd/regression_test.py
Normal file
43
tests/frontends/mpd/regression_test.py
Normal file
@ -0,0 +1,43 @@
|
||||
import random
|
||||
import unittest
|
||||
|
||||
from mopidy.backends.dummy import DummyBackend
|
||||
from mopidy.frontends.mpd import dispatcher
|
||||
from mopidy.mixers.dummy import DummyMixer
|
||||
from mopidy.models import Track
|
||||
|
||||
class IssueGH18RegressionTest(unittest.TestCase):
|
||||
"""
|
||||
The issue: http://github.com/jodal/mopidy/issues#issue/18
|
||||
|
||||
How to reproduce:
|
||||
|
||||
Play, random on, next, random off, next, next.
|
||||
|
||||
At this point it gives the same song over and over.
|
||||
"""
|
||||
|
||||
def setUp(self):
|
||||
self.backend = DummyBackend(mixer_class=DummyMixer)
|
||||
self.backend.current_playlist.append([
|
||||
Track(uri='a'), Track(uri='b'), Track(uri='c'),
|
||||
Track(uri='d'), Track(uri='e'), Track(uri='f')])
|
||||
self.mpd = dispatcher.MpdDispatcher(backend=self.backend)
|
||||
|
||||
def test(self):
|
||||
random.seed(1)
|
||||
self.mpd.handle_request(u'play')
|
||||
self.mpd.handle_request(u'random "1"')
|
||||
self.mpd.handle_request(u'next')
|
||||
self.mpd.handle_request(u'random "0"')
|
||||
self.mpd.handle_request(u'next')
|
||||
|
||||
self.mpd.handle_request(u'next')
|
||||
cp_track_1 = self.backend.playback.current_cp_track
|
||||
self.mpd.handle_request(u'next')
|
||||
cp_track_2 = self.backend.playback.current_cp_track
|
||||
self.mpd.handle_request(u'next')
|
||||
cp_track_3 = self.backend.playback.current_cp_track
|
||||
|
||||
self.assertNotEqual(cp_track_1, cp_track_2)
|
||||
self.assertNotEqual(cp_track_2, cp_track_3)
|
||||
Loading…
Reference in New Issue
Block a user