Require at least one frontend and one backend
This commit is contained in:
parent
197447c0cb
commit
49cf1ab8aa
@ -143,6 +143,11 @@ def validate_settings(defaults, settings):
|
||||
'SPOTIFY_LIB_CACHE': 'SPOTIFY_CACHE_PATH',
|
||||
}
|
||||
|
||||
list_of_one_or_more = [
|
||||
'BACKENDS',
|
||||
'FRONTENDS',
|
||||
]
|
||||
|
||||
for setting, value in settings.iteritems():
|
||||
if setting in changed:
|
||||
if changed[setting] is None:
|
||||
@ -167,6 +172,10 @@ def validate_settings(defaults, settings):
|
||||
u'Deprecated setting, please set the value via the GStreamer '
|
||||
u'bin in OUTPUT.')
|
||||
|
||||
elif setting in list_of_one_or_more:
|
||||
if not value:
|
||||
errors[setting] = u'Must contain at least one value.'
|
||||
|
||||
elif setting not in defaults:
|
||||
errors[setting] = u'Unknown setting.'
|
||||
suggestion = did_you_mean(setting, defaults)
|
||||
|
||||
@ -9,6 +9,8 @@ from tests import unittest
|
||||
class ValidateSettingsTest(unittest.TestCase):
|
||||
def setUp(self):
|
||||
self.defaults = {
|
||||
'BACKENDS': ['a'],
|
||||
'FRONTENDS': ['a'],
|
||||
'MPD_SERVER_HOSTNAME': '::',
|
||||
'MPD_SERVER_PORT': 6600,
|
||||
'SPOTIFY_BITRATE': 160,
|
||||
@ -66,6 +68,18 @@ class ValidateSettingsTest(unittest.TestCase):
|
||||
'SPOTIFY_USERNAME', None)
|
||||
self.assertEqual(None, not_secret)
|
||||
|
||||
def test_empty_frontends_list_returns_error(self):
|
||||
result = setting_utils.validate_settings(
|
||||
self.defaults, {'FRONTENDS': []})
|
||||
self.assertEqual(
|
||||
result['FRONTENDS'], u'Must contain at least one value.')
|
||||
|
||||
def test_empty_backends_list_returns_error(self):
|
||||
result = setting_utils.validate_settings(
|
||||
self.defaults, {'BACKENDS': []})
|
||||
self.assertEqual(
|
||||
result['BACKENDS'], u'Must contain at least one value.')
|
||||
|
||||
|
||||
class SettingsProxyTest(unittest.TestCase):
|
||||
def setUp(self):
|
||||
|
||||
Loading…
Reference in New Issue
Block a user