diff --git a/docs/extensiondev.rst b/docs/extensiondev.rst index 73457c54..c55eb6e4 100644 --- a/docs/extensiondev.rst +++ b/docs/extensiondev.rst @@ -234,7 +234,8 @@ meaningful defaults blank, like ``username`` and ``password``. class Extension(ext.Extension): - name = 'Mopidy-Soundspot' + dist_name = 'Mopidy-Soundspot' + ext_name = 'soundspot' version = __version__ def get_default_config(self): diff --git a/mopidy/__main__.py b/mopidy/__main__.py index 8d8d7d62..44ec38d5 100644 --- a/mopidy/__main__.py +++ b/mopidy/__main__.py @@ -145,18 +145,25 @@ def load_extensions(): extension = extension_class() + if entry_point.name != extension.ext_name: + logger.warning( + 'Disabled extension %(ep)s: entry point name (%(ep)s) ' + 'does not match extension name (%(ext)s)', + {'ep': entry_point.name, 'ext': extension.ext_name}) + continue + # TODO Validate configuration try: extension.validate_environment() except exceptions.ExtensionError as ex: logger.info( - 'Disabled extension: %s (%s)', extension.name, ex.message) + 'Disabled extension %s: %s', entry_point.name, ex.message) continue logger.info( 'Loaded extension %s: %s %s', - entry_point.name, extension.name, extension.version) + entry_point.name, extension.dist_name, extension.version) extensions.append(extension) return extensions diff --git a/mopidy/backends/local/__init__.py b/mopidy/backends/local/__init__.py index 42477b53..bd9a6d1a 100644 --- a/mopidy/backends/local/__init__.py +++ b/mopidy/backends/local/__init__.py @@ -46,7 +46,8 @@ None class Extension(ext.Extension): - name = 'Mopidy-Local' + dist_name = 'Mopidy-Local' + ext_name = 'local' version = mopidy.__version__ def get_default_config(self): diff --git a/mopidy/backends/spotify/__init__.py b/mopidy/backends/spotify/__init__.py index 4c3b67fe..d9fdb630 100644 --- a/mopidy/backends/spotify/__init__.py +++ b/mopidy/backends/spotify/__init__.py @@ -67,7 +67,8 @@ https://github.com/mopidy/mopidy/issues?labels=Spotify+backend class Extension(ext.Extension): - name = 'Mopidy-Spotify' + dist_name = 'Mopidy-Spotify' + ext_name = 'spotify' version = mopidy.__version__ def get_default_config(self): diff --git a/mopidy/backends/stream/__init__.py b/mopidy/backends/stream/__init__.py index 097efc45..d14275b0 100644 --- a/mopidy/backends/stream/__init__.py +++ b/mopidy/backends/stream/__init__.py @@ -45,7 +45,8 @@ None class Extension(ext.Extension): - name = 'Mopidy-Stream' + dist_name = 'Mopidy-Stream' + ext_name = 'stream' version = mopidy.__version__ def get_default_config(self): diff --git a/mopidy/ext.py b/mopidy/ext.py index 0097d8c6..bc26069c 100644 --- a/mopidy/ext.py +++ b/mopidy/ext.py @@ -5,7 +5,8 @@ from mopidy.utils import config class Extension(object): - name = None + dist_name = None + ext_name = None version = None def get_default_config(self): diff --git a/mopidy/frontends/http/__init__.py b/mopidy/frontends/http/__init__.py index 6160d47c..f7f9f659 100644 --- a/mopidy/frontends/http/__init__.py +++ b/mopidy/frontends/http/__init__.py @@ -519,7 +519,8 @@ Example to get started with class Extension(ext.Extension): - name = 'Mopidy-HTTP' + dist_name = 'Mopidy-HTTP' + ext_name = 'http' version = mopidy.__version__ def get_default_config(self): diff --git a/mopidy/frontends/lastfm/__init__.py b/mopidy/frontends/lastfm/__init__.py index f24e8f81..510856ea 100644 --- a/mopidy/frontends/lastfm/__init__.py +++ b/mopidy/frontends/lastfm/__init__.py @@ -44,7 +44,8 @@ The frontend is enabled by default if all dependencies are available. class Extension(ext.Extension): - name = 'Mopidy-Lastfm' + dist_name = 'Mopidy-Lastfm' + ext_name = 'lastfm' version = mopidy.__version__ def get_default_config(self): diff --git a/mopidy/frontends/mpd/__init__.py b/mopidy/frontends/mpd/__init__.py index dacbf69e..518da54a 100644 --- a/mopidy/frontends/mpd/__init__.py +++ b/mopidy/frontends/mpd/__init__.py @@ -88,7 +88,8 @@ near future: class Extension(ext.Extension): - name = 'Mopidy-MPD' + dist_name = 'Mopidy-MPD' + ext_name = 'mpd' version = mopidy.__version__ def get_default_config(self): diff --git a/mopidy/frontends/mpris/__init__.py b/mopidy/frontends/mpris/__init__.py index 407d4800..20ef0ea7 100644 --- a/mopidy/frontends/mpris/__init__.py +++ b/mopidy/frontends/mpris/__init__.py @@ -70,7 +70,8 @@ Now you can control Mopidy through the player object. Examples: class Extension(ext.Extension): - name = 'Mopidy-MPRIS' + dist_name = 'Mopidy-MPRIS' + ext_name = 'mpris' version = mopidy.__version__ def get_default_config(self): diff --git a/tests/ext_test.py b/tests/ext_test.py index d279b52f..b58333c2 100644 --- a/tests/ext_test.py +++ b/tests/ext_test.py @@ -10,8 +10,11 @@ class ExtensionTest(unittest.TestCase): def setUp(self): self.ext = Extension() - def test_name_is_none(self): - self.assertIsNone(self.ext.name) + def test_dist_name_is_none(self): + self.assertIsNone(self.ext.dist_name) + + def test_ext_name_is_none(self): + self.assertIsNone(self.ext.ext_name) def test_version_is_none(self): self.assertIsNone(self.ext.version)