Merge branch 'master' into release-2.2

This commit is contained in:
Nick Steel 2019-01-31 22:59:27 +00:00
commit 3e40f918c9
9 changed files with 15 additions and 12 deletions

View File

@ -76,21 +76,21 @@ simultaneously. To use the Icecast output, do the following:
.. code-block:: ini .. code-block:: ini
[audio] [audio]
output = lamemp3enc ! shout2send mount=mopidy ip=127.0.0.1 port=8000 password=hackme output = lamemp3enc ! shout2send async=false mount=mopidy ip=127.0.0.1 port=8000 password=hackme
Example for Ogg Vorbis streaming: Example for Ogg Vorbis streaming:
.. code-block:: ini .. code-block:: ini
[audio] [audio]
output = audioresample ! audioconvert ! vorbisenc ! oggmux ! shout2send mount=mopidy ip=127.0.0.1 port=8000 password=hackme output = audioresample ! audioconvert ! vorbisenc ! oggmux ! shout2send async=false mount=mopidy ip=127.0.0.1 port=8000 password=hackme
Example for MP3 streaming and local audio (multiple outputs): Example for MP3 streaming and local audio (multiple outputs):
.. code-block:: ini .. code-block:: ini
[audio] [audio]
output = tee name=t ! queue ! audioresample ! autoaudiosink t. ! queue ! lamemp3enc ! shout2send mount=mopidy ip=127.0.0.1 port=8000 password=hackme output = tee name=t ! queue ! audioresample ! autoaudiosink t. ! queue ! lamemp3enc ! shout2send async=false mount=mopidy ip=127.0.0.1 port=8000 password=hackme
Other advanced setups are also possible for outputs. Basically, anything you Other advanced setups are also possible for outputs. Basically, anything you
can use with the ``gst-launch-1.0`` command can be plugged into can use with the ``gst-launch-1.0`` command can be plugged into

View File

@ -20,7 +20,7 @@ Mopidy and enabled by default.
local network. You have been warned. local network. You have been warned.
MPD stands for Music Player Daemon, which is also the name of the `original MPD MPD stands for Music Player Daemon, which is also the name of the `original MPD
server project <http://mpd.wikia.com/>`_. Mopidy does not depend on the server project <https://www.musicpd.org/>`_. Mopidy does not depend on the
original MPD server, but implements the MPD protocol itself, and is thus original MPD server, but implements the MPD protocol itself, and is thus
compatible with clients for the original MPD server. compatible with clients for the original MPD server.

View File

@ -6,9 +6,9 @@ from mopidy.compat import configparser
from mopidy.internal import validation from mopidy.internal import validation
try: try:
import xml.etree.cElementTree as elementtree import xml.etree.cElementTree as elementtree # noqa: N813
except ImportError: except ImportError:
import xml.etree.ElementTree as elementtree import xml.etree.ElementTree as elementtree # noqa: N813
def parse(data): def parse(data):

View File

@ -108,7 +108,7 @@ def track_to_mpd_format(track, position=None, stream_title=None):
if track.album and track.album.uri: if track.album and track.album.uri:
result.append(('X-AlbumUri', track.album.uri)) result.append(('X-AlbumUri', track.album.uri))
if track.album and track.album.images: if track.album and track.album.images:
images = ';'.join(i for i in track.album.images if i is not '') images = ';'.join(i for i in track.album.images if i != '')
result.append(('X-AlbumImage', images)) result.append(('X-AlbumImage', images))
result = [element for element in result if _has_value(*element)] result = [element for element in result if _has_value(*element)]

View File

@ -45,6 +45,9 @@ class ScannerTest(unittest.TestCase):
def test_tags_is_set(self): def test_tags_is_set(self):
self.scan(self.find('scanner/simple')) self.scan(self.find('scanner/simple'))
self.check_if_missing_plugin()
self.assert_(self.result.values()[0].tags) self.assert_(self.result.values()[0].tags)
def test_errors_is_not_set(self): def test_errors_is_not_set(self):

View File

@ -164,7 +164,7 @@ __HASH10__ = foo # = should all be treated as a comment."""
class PreProcessorTest(unittest.TestCase): class PreProcessorTest(unittest.TestCase):
maxDiff = None # Show entire diff. maxDiff = None # Show entire diff. # noqa: N815
def test_empty_config(self): def test_empty_config(self):
result = config._preprocess('') result = config._preprocess('')
@ -230,7 +230,7 @@ class PreProcessorTest(unittest.TestCase):
class PostProcessorTest(unittest.TestCase): class PostProcessorTest(unittest.TestCase):
maxDiff = None # Show entire diff. maxDiff = None # Show entire diff. # noqa: N815
def test_empty_config(self): def test_empty_config(self):
result = config._postprocess('[__COMMENTS__]') result = config._postprocess('[__COMMENTS__]')

View File

@ -497,7 +497,7 @@ class TestCurrentAndPendingTlTrack(BaseTest):
'mopidy.core.playback.listener.CoreListener', spec=core.CoreListener) 'mopidy.core.playback.listener.CoreListener', spec=core.CoreListener)
class EventEmissionTest(BaseTest): class EventEmissionTest(BaseTest):
maxDiff = None maxDiff = None # noqa: N815
def test_play_when_stopped_emits_events(self, listener_mock): def test_play_when_stopped_emits_events(self, listener_mock):
tl_tracks = self.core.tracklist.get_tl_tracks() tl_tracks = self.core.tracklist.get_tl_tracks()

View File

@ -237,7 +237,7 @@ class ExpandPathTest(unittest.TestCase):
class FindMTimesTest(unittest.TestCase): class FindMTimesTest(unittest.TestCase):
maxDiff = None maxDiff = None # noqa: N815
def setUp(self): # noqa: N802 def setUp(self): # noqa: N802
self.tmpdir = tempfile.mkdtemp(b'.mopidy-tests') self.tmpdir = tempfile.mkdtemp(b'.mopidy-tests')

View File

@ -9,7 +9,7 @@ from tests import path_to_data_dir
class BrowseCacheTest(unittest.TestCase): class BrowseCacheTest(unittest.TestCase):
maxDiff = None maxDiff = None # noqa: N815
def setUp(self): # noqa: N802 def setUp(self): # noqa: N802
self.uris = ['local:track:foo/bar/song1', self.uris = ['local:track:foo/bar/song1',