diff --git a/mopidy/__main__.py b/mopidy/__main__.py index 020252c9..dc5d8d8d 100644 --- a/mopidy/__main__.py +++ b/mopidy/__main__.py @@ -157,11 +157,11 @@ def load_extensions(): logger.debug( 'Loaded extension: %s %s', extension.dist_name, extension.version) - if entry_point.name != extension.ext_name: + if entry_point.name != extension.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}) + {'ep': entry_point.name, 'ext': extension.name}) continue try: @@ -173,7 +173,7 @@ def load_extensions(): extensions.append(extension) - names = (e.ext_name for e in extensions) + names = (e.name for e in extensions) logging.info('Found following runnable extensions: %s', ', '.join(names)) return extensions @@ -184,11 +184,11 @@ def filter_enabled_extensions(raw_config, extensions): for extension in extensions: # TODO: handle key and value errors. - enabled = raw_config['ext.%s' % extension.ext_name]['enabled'] + enabled = raw_config[extension.ext_name]['enabled'] if boolean.deserialize(enabled): filtered_extensions.append(extension) - names = (e.ext_name for e in filtered_extensions) + names = (e.name for e in filtered_extensions) logging.info('Following extensions will be started: %s', ', '.join(names)) return filtered_extensions @@ -237,9 +237,8 @@ def validate_config(raw_config, extensions): # Collect config schemas to validate against sections_and_schemas = config_schemas.items() for extension in extensions: - section_name = 'ext.%s' % extension.ext_name sections_and_schemas.append( - (section_name, extension.get_config_schema())) + (extension.ext_name, extension.get_config_schema())) # Get validated config config = {} diff --git a/mopidy/backends/local/__init__.py b/mopidy/backends/local/__init__.py index bd9a6d1a..a93c8fa8 100644 --- a/mopidy/backends/local/__init__.py +++ b/mopidy/backends/local/__init__.py @@ -47,7 +47,7 @@ None class Extension(ext.Extension): dist_name = 'Mopidy-Local' - ext_name = 'local' + 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 d9fdb630..a19d7ea8 100644 --- a/mopidy/backends/spotify/__init__.py +++ b/mopidy/backends/spotify/__init__.py @@ -68,7 +68,7 @@ https://github.com/mopidy/mopidy/issues?labels=Spotify+backend class Extension(ext.Extension): dist_name = 'Mopidy-Spotify' - ext_name = 'spotify' + 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 d14275b0..321e4a03 100644 --- a/mopidy/backends/stream/__init__.py +++ b/mopidy/backends/stream/__init__.py @@ -46,7 +46,7 @@ None class Extension(ext.Extension): dist_name = 'Mopidy-Stream' - ext_name = 'stream' + name = 'stream' version = mopidy.__version__ def get_default_config(self): diff --git a/mopidy/ext.py b/mopidy/ext.py index bc26069c..78283617 100644 --- a/mopidy/ext.py +++ b/mopidy/ext.py @@ -6,9 +6,15 @@ from mopidy.utils import config class Extension(object): dist_name = None - ext_name = None + name = None version = None + @property + def ext_name(self): + if self.name is None: + return None + return 'ext.%s' % self.name + def get_default_config(self): raise NotImplementedError( 'Add at least a config section with "enabled = true"') diff --git a/mopidy/frontends/http/__init__.py b/mopidy/frontends/http/__init__.py index 5e9629a7..d2fe24fc 100644 --- a/mopidy/frontends/http/__init__.py +++ b/mopidy/frontends/http/__init__.py @@ -520,7 +520,7 @@ Example to get started with class Extension(ext.Extension): dist_name = 'Mopidy-HTTP' - ext_name = 'http' + 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 510856ea..7a252170 100644 --- a/mopidy/frontends/lastfm/__init__.py +++ b/mopidy/frontends/lastfm/__init__.py @@ -45,7 +45,7 @@ The frontend is enabled by default if all dependencies are available. class Extension(ext.Extension): dist_name = 'Mopidy-Lastfm' - ext_name = 'lastfm' + 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 518da54a..d782c545 100644 --- a/mopidy/frontends/mpd/__init__.py +++ b/mopidy/frontends/mpd/__init__.py @@ -89,7 +89,7 @@ near future: class Extension(ext.Extension): dist_name = 'Mopidy-MPD' - ext_name = 'mpd' + 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 20ef0ea7..4b817c73 100644 --- a/mopidy/frontends/mpris/__init__.py +++ b/mopidy/frontends/mpris/__init__.py @@ -71,7 +71,7 @@ Now you can control Mopidy through the player object. Examples: class Extension(ext.Extension): dist_name = 'Mopidy-MPRIS' - ext_name = 'mpris' + name = 'mpris' version = mopidy.__version__ def get_default_config(self): diff --git a/tests/ext_test.py b/tests/ext_test.py index b58333c2..b967f951 100644 --- a/tests/ext_test.py +++ b/tests/ext_test.py @@ -13,9 +13,16 @@ class ExtensionTest(unittest.TestCase): def test_dist_name_is_none(self): self.assertIsNone(self.ext.dist_name) + def test_name_is_none(self): + self.assertIsNone(self.ext.name) + def test_ext_name_is_none(self): self.assertIsNone(self.ext.ext_name) + def test_ext_name_prefixes_ext(self): + self.ext.name = 'foo' + self.assertEqual('ext.foo', self.ext.ext_name) + def test_version_is_none(self): self.assertIsNone(self.ext.version)