diff --git a/mopidy/frontends/mpris/__init__.py b/mopidy/frontends/mpris/__init__.py index 79806c47..4dde2e20 100644 --- a/mopidy/frontends/mpris/__init__.py +++ b/mopidy/frontends/mpris/__init__.py @@ -32,8 +32,8 @@ An example of an MPRIS client is the `Ubuntu Sound Menu Ubuntu Sound Menu. The package is named ``python-indicate`` in Ubuntu/Debian. -- An ``.desktop`` file for Mopidy installed at the path set in - :attr:`mopidy.settings.DESKTOP_FILE`. See :ref:`install-desktop-file` for +- An ``.desktop`` file for Mopidy installed at the path set in the + ``mpris/desktop_file`` config value. See :ref:`install-desktop-file` for details. **Default config** diff --git a/mopidy/frontends/mpris/actor.py b/mopidy/frontends/mpris/actor.py index 11f87922..92805bd3 100644 --- a/mopidy/frontends/mpris/actor.py +++ b/mopidy/frontends/mpris/actor.py @@ -4,7 +4,6 @@ import logging import pykka -from mopidy import settings from mopidy.core import CoreListener from mopidy.frontends.mpris import objects @@ -20,13 +19,14 @@ except ImportError as import_error: class MprisFrontend(pykka.ThreadingActor, CoreListener): def __init__(self, config, core): super(MprisFrontend, self).__init__() + self.config = config self.core = core self.indicate_server = None self.mpris_object = None def on_start(self): try: - self.mpris_object = objects.MprisObject(self.core) + self.mpris_object = objects.MprisObject(self.config, self.core) self._send_startup_notification() except Exception as e: logger.error('MPRIS frontend setup failed (%s)', e) @@ -53,7 +53,8 @@ class MprisFrontend(pykka.ThreadingActor, CoreListener): logger.debug('Sending startup notification...') self.indicate_server = indicate.Server() self.indicate_server.set_type('music.mopidy') - self.indicate_server.set_desktop_file(settings.DESKTOP_FILE) + self.indicate_server.set_desktop_file( + self.config['mpris']['desktop_file']) self.indicate_server.show() logger.debug('Startup notification sent') diff --git a/mopidy/frontends/mpris/objects.py b/mopidy/frontends/mpris/objects.py index 04a72676..696e39bd 100644 --- a/mopidy/frontends/mpris/objects.py +++ b/mopidy/frontends/mpris/objects.py @@ -13,7 +13,6 @@ except ImportError as import_error: from mopidy.exceptions import OptionalDependencyError raise OptionalDependencyError(import_error) -from mopidy import settings from mopidy.core import PlaybackState from mopidy.utils.process import exit_process @@ -36,7 +35,8 @@ class MprisObject(dbus.service.Object): properties = None - def __init__(self, core): + def __init__(self, config, core): + self.config = config self.core = core self.properties = { ROOT_IFACE: self._get_root_iface_properties(), @@ -175,7 +175,8 @@ class MprisObject(dbus.service.Object): ### Root interface properties def get_DesktopEntry(self): - return os.path.splitext(os.path.basename(settings.DESKTOP_FILE))[0] + return os.path.splitext(os.path.basename( + self.config['mpris']['desktop_file']))[0] def get_SupportedUriSchemes(self): return dbus.Array(self.core.uri_schemes.get(), signature='s') diff --git a/tests/frontends/mpris/player_interface_test.py b/tests/frontends/mpris/player_interface_test.py index ec4a17a9..e1e13084 100644 --- a/tests/frontends/mpris/player_interface_test.py +++ b/tests/frontends/mpris/player_interface_test.py @@ -28,7 +28,7 @@ class PlayerInterfaceTest(unittest.TestCase): objects.MprisObject._connect_to_dbus = mock.Mock() self.backend = dummy.create_dummy_backend_proxy() self.core = core.Core.start(backends=[self.backend]).proxy() - self.mpris = objects.MprisObject(core=self.core) + self.mpris = objects.MprisObject(config={}, core=self.core) def tearDown(self): pykka.ActorRegistry.stop_all() diff --git a/tests/frontends/mpris/playlists_interface_test.py b/tests/frontends/mpris/playlists_interface_test.py index 745a858c..67f9e9be 100644 --- a/tests/frontends/mpris/playlists_interface_test.py +++ b/tests/frontends/mpris/playlists_interface_test.py @@ -25,7 +25,7 @@ class PlayerInterfaceTest(unittest.TestCase): objects.MprisObject._connect_to_dbus = mock.Mock() self.backend = dummy.create_dummy_backend_proxy() self.core = core.Core.start(backends=[self.backend]).proxy() - self.mpris = objects.MprisObject(core=self.core) + self.mpris = objects.MprisObject(config={}, core=self.core) foo = self.core.playlists.create('foo').get() foo = foo.copy(last_modified=datetime.datetime(2012, 3, 1, 6, 0, 0)) diff --git a/tests/frontends/mpris/root_interface_test.py b/tests/frontends/mpris/root_interface_test.py index 36d689a2..806b2162 100644 --- a/tests/frontends/mpris/root_interface_test.py +++ b/tests/frontends/mpris/root_interface_test.py @@ -5,7 +5,7 @@ import sys import mock import pykka -from mopidy import core, exceptions, settings +from mopidy import core, exceptions from mopidy.backends import dummy try: @@ -19,11 +19,17 @@ from tests import unittest @unittest.skipUnless(sys.platform.startswith('linux'), 'requires Linux') class RootInterfaceTest(unittest.TestCase): def setUp(self): + config = { + 'mpris': { + 'desktop_file': '/tmp/foo.desktop', + } + } + objects.exit_process = mock.Mock() objects.MprisObject._connect_to_dbus = mock.Mock() self.backend = dummy.create_dummy_backend_proxy() self.core = core.Core.start(backends=[self.backend]).proxy() - self.mpris = objects.MprisObject(core=self.core) + self.mpris = objects.MprisObject(config=config, core=self.core) def tearDown(self): pykka.ActorRegistry.stop_all() @@ -66,15 +72,9 @@ class RootInterfaceTest(unittest.TestCase): result = self.mpris.Get(objects.ROOT_IFACE, 'Identity') self.assertEquals(result, 'Mopidy') - def test_desktop_entry_is_mopidy(self): - result = self.mpris.Get(objects.ROOT_IFACE, 'DesktopEntry') - self.assertEquals(result, 'mopidy') - def test_desktop_entry_is_based_on_DESKTOP_FILE_setting(self): - settings.runtime['DESKTOP_FILE'] = '/tmp/foo.desktop' result = self.mpris.Get(objects.ROOT_IFACE, 'DesktopEntry') self.assertEquals(result, 'foo') - settings.runtime.clear() def test_supported_uri_schemes_includes_backend_uri_schemes(self): result = self.mpris.Get(objects.ROOT_IFACE, 'SupportedUriSchemes')