ext: Add Extension base class

This commit is contained in:
Stein Magnus Jodal 2013-04-01 11:02:02 +02:00
parent b095f14083
commit f89f4151b0
2 changed files with 61 additions and 0 deletions

27
mopidy/ext.py Normal file
View File

@ -0,0 +1,27 @@
from __future__ import unicode_literals
class Extension(object):
name = None
version = None
def get_default_config(self):
raise NotImplementedError(
'Add at least a config section with "enabled = true"')
def validate_config(self, config):
raise NotImplementedError(
'You must explicitly pass config validation if not needed')
def validate_environment(self):
pass
def get_frontend_class(self):
pass
def get_backend_class(self):
pass
def register_gstreamer_elements(self):
pass

34
tests/ext_test.py Normal file
View File

@ -0,0 +1,34 @@
from __future__ import unicode_literals
from mopidy.ext import Extension
from tests import unittest
class ExtensionTest(unittest.TestCase):
def setUp(self):
self.ext = Extension()
def test_name_is_none(self):
self.assertIsNone(self.ext.name)
def test_version_is_none(self):
self.assertIsNone(self.ext.version)
def test_get_default_config_raises_not_implemented(self):
self.assertRaises(NotImplementedError, self.ext.get_default_config)
def test_validate_config_raises_not_implemented(self):
self.assertRaises(NotImplementedError, self.ext.validate_config, None)
def test_validate_environment_does_nothing_by_default(self):
self.assertIsNone(self.ext.validate_environment())
def test_get_frontend_class_returns_none_by_default(self):
self.assertIsNone(self.ext.get_frontend_class())
def test_get_backend_class_returns_none_by_default(self):
self.assertIsNone(self.ext.get_backend_class())
def test_register_gstreamer_elements_does_nothing_by_default(self):
self.assertIsNone(self.ext.register_gstreamer_elements())