commit
bd13dcdcdd
@ -166,7 +166,7 @@ def main():
|
||||
raise
|
||||
|
||||
|
||||
def create_file_structures_and_config(args, extensions):
|
||||
def create_file_structures_and_config(args, extensions_data):
|
||||
path.get_or_create_dir(b'$XDG_DATA_DIR/mopidy')
|
||||
path.get_or_create_dir(b'$XDG_CONFIG_DIR/mopidy')
|
||||
|
||||
@ -176,7 +176,7 @@ def create_file_structures_and_config(args, extensions):
|
||||
return
|
||||
|
||||
try:
|
||||
default = config_lib.format_initial(extensions)
|
||||
default = config_lib.format_initial(extensions_data)
|
||||
path.get_or_create_file(config_file, mkdir=False, content=default)
|
||||
logger.info('Initialized %s with default config', config_file)
|
||||
except IOError as error:
|
||||
|
||||
@ -87,20 +87,23 @@ def format(config, ext_schemas, comments=None, display=True):
|
||||
return _format(config, comments or {}, schemas, display, False)
|
||||
|
||||
|
||||
def format_initial(extensions):
|
||||
def format_initial(extensions_data):
|
||||
config_dir = os.path.dirname(__file__)
|
||||
defaults = [read(os.path.join(config_dir, 'default.conf'))]
|
||||
defaults.extend(e.get_default_config() for e in extensions)
|
||||
defaults.extend(d.extension.get_default_config() for d in extensions_data)
|
||||
raw_config = _load([], defaults, [])
|
||||
|
||||
schemas = _schemas[:]
|
||||
schemas.extend(e.get_config_schema() for e in extensions)
|
||||
schemas.extend(d.extension.get_config_schema() for d in extensions_data)
|
||||
|
||||
config, errors = _validate(raw_config, schemas)
|
||||
|
||||
versions = ['Mopidy %s' % versioning.get_version()]
|
||||
for extension in sorted(extensions, key=lambda ext: ext.dist_name):
|
||||
versions.append('%s %s' % (extension.dist_name, extension.version))
|
||||
extensions_data = sorted(
|
||||
extensions_data, key=lambda d: d.extension.dist_name)
|
||||
for data in extensions_data:
|
||||
versions.append('%s %s' % (
|
||||
data.extension.dist_name, data.extension.version))
|
||||
|
||||
header = _INITIAL_HELP.strip() % {'versions': '\n# '.join(versions)}
|
||||
formatted_config = _format(
|
||||
|
||||
@ -6,7 +6,7 @@ import unittest
|
||||
|
||||
import mock
|
||||
|
||||
from mopidy import config
|
||||
from mopidy import config, ext
|
||||
|
||||
from tests import path_to_data_dir
|
||||
|
||||
@ -292,3 +292,23 @@ class PostProcessorTest(unittest.TestCase):
|
||||
def test_conversion(self):
|
||||
result = config._postprocess(PROCESSED_CONFIG)
|
||||
self.assertEqual(result, INPUT_CONFIG)
|
||||
|
||||
|
||||
def test_format_initial():
|
||||
extension = ext.Extension()
|
||||
extension.ext_name = 'foo'
|
||||
extension.get_default_config = lambda: None
|
||||
extensions_data = [
|
||||
ext.ExtensionData(
|
||||
extension=extension,
|
||||
entry_point=None,
|
||||
config_schema=None,
|
||||
config_defaults=None,
|
||||
command=None,
|
||||
),
|
||||
]
|
||||
|
||||
result = config.format_initial(extensions_data)
|
||||
|
||||
assert '# For further information' in result
|
||||
assert '[foo]\n' in result
|
||||
|
||||
Loading…
Reference in New Issue
Block a user