Merge remote-tracking branch 'upstream/develop' into feature/843-core-config-for-data-config-cache-dirs
This commit is contained in:
commit
6d92c3ba7b
2
.mailmap
2
.mailmap
@ -24,4 +24,6 @@ Christopher Schirner <christopher@hackerspace-bamberg.de> <schinken@hackerspace-
|
||||
Laura Barber <laura.c.barber@gmail.com> <artzii.laura@gmail.com>
|
||||
John Cass <john.cass77@gmail.com>
|
||||
Ronald Zielaznicki <zielaznickizm@g.cofc.edu> <zielaznickiz@g.cofc.edu>
|
||||
Kyle Heyne <kyleheyne@gmail.com>
|
||||
Tom Roth <rawdlite@googlemail.com>
|
||||
Eric Jahn <ejahn@newstore.com>
|
||||
|
||||
3
AUTHORS
3
AUTHORS
@ -57,5 +57,8 @@
|
||||
- Camilo Nova <camilo.nova@gmail.com>
|
||||
- Dražen Lučanin <kermit666@gmail.com>
|
||||
- Naglis Jonaitis <njonaitis@gmail.com>
|
||||
- Kyle Heyne <kyleheyne@gmail.com>
|
||||
- Tom Roth <rawdlite@googlemail.com>
|
||||
- Mark Greenwood <fatgerman@gmail.com>
|
||||
- Stein Karlsen <karlsen.stein@gmail.com>
|
||||
- Eric Jahn <ejahn@newstore.com>
|
||||
|
||||
@ -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:
|
||||
|
||||
@ -90,20 +90,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(
|
||||
|
||||
@ -348,8 +348,11 @@ class PlaybackController(object):
|
||||
backend.playback.change_track(tl_track.track).get() and
|
||||
backend.playback.play().get())
|
||||
except TypeError:
|
||||
logger.error('%s needs to be updated to work with this '
|
||||
'version of Mopidy.', backend)
|
||||
logger.error(
|
||||
'%s needs to be updated to work with this '
|
||||
'version of Mopidy.',
|
||||
backend.actor_ref.actor_class.__name__)
|
||||
logger.debug('Backend exception', exc_info=True)
|
||||
|
||||
if success:
|
||||
self.core.tracklist._mark_playing(tl_track)
|
||||
|
||||
@ -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
|
||||
|
||||
@ -724,6 +724,7 @@ class CorePlaybackWithOldBackendTest(unittest.TestCase):
|
||||
}
|
||||
|
||||
b = mock.Mock()
|
||||
b.actor_ref.actor_class.__name__ = 'DummyBackend'
|
||||
b.uri_schemes.get.return_value = ['dummy1']
|
||||
b.playback = mock.Mock(spec=backend.PlaybackProvider)
|
||||
b.playback.play.side_effect = TypeError
|
||||
|
||||
@ -1 +1,3 @@
|
||||
from __future__ import unicode_literals
|
||||
|
||||
# TODO Test browse()
|
||||
|
||||
@ -1 +1,3 @@
|
||||
from __future__ import unicode_literals
|
||||
|
||||
# TODO Test lookup()
|
||||
|
||||
@ -3,6 +3,7 @@
|
||||
from __future__ import absolute_import, unicode_literals
|
||||
|
||||
import os
|
||||
import platform
|
||||
import shutil
|
||||
import tempfile
|
||||
import unittest
|
||||
@ -156,8 +157,11 @@ class M3UPlaylistsProviderTest(unittest.TestCase):
|
||||
self.core.playlists.refresh()
|
||||
|
||||
self.assertEqual(len(self.core.playlists.as_list()), 1)
|
||||
result = self.core.playlists.lookup(uri)
|
||||
self.assertEqual('\ufffd\ufffd\ufffd', result.name)
|
||||
result = self.core.playlists.as_list()
|
||||
if platform.system() == 'Darwin':
|
||||
self.assertEqual('%F8%E6%E5', result[0].name)
|
||||
else:
|
||||
self.assertEqual('\ufffd\ufffd\ufffd', result[0].name)
|
||||
|
||||
@unittest.SkipTest
|
||||
def test_playlists_dir_is_created(self):
|
||||
|
||||
Loading…
Reference in New Issue
Block a user