diff --git a/mopidy/core/playback.py b/mopidy/core/playback.py index ea725004..f9c9295a 100644 --- a/mopidy/core/playback.py +++ b/mopidy/core/playback.py @@ -212,14 +212,17 @@ class PlaybackController(object): # This code path handles the stop() case, uri should be none. position, self._last_position = self._last_position, None - self._trigger_track_playback_ended(position) + if self._pending_position is None: + self._trigger_track_playback_ended(position) self._stream_title = None if self._pending_tl_track: self._set_current_tl_track(self._pending_tl_track) self._pending_tl_track = None - self.set_state(PlaybackState.PLAYING) - self._trigger_track_playback_started() + + if self._pending_position is None: + self.set_state(PlaybackState.PLAYING) + self._trigger_track_playback_started() def _on_position_changed(self, position): if self._pending_position == position: diff --git a/tests/core/test_playback.py b/tests/core/test_playback.py index 8ff37861..f0d6d477 100644 --- a/tests/core/test_playback.py +++ b/tests/core/test_playback.py @@ -6,8 +6,6 @@ import mock import pykka -import pytest - from mopidy import backend, core from mopidy.internal import deprecation from mopidy.models import Track @@ -534,7 +532,6 @@ class EventEmissionTest(BaseTest): ], listener_mock.send.mock_calls) - @pytest.mark.xfail def test_seek_race_condition_emits_events(self, listener_mock): tl_tracks = self.core.tracklist.get_tl_tracks()