diff --git a/mopidy/config/types.py b/mopidy/config/types.py index 726d81f7..3451992a 100644 --- a/mopidy/config/types.py +++ b/mopidy/config/types.py @@ -3,6 +3,7 @@ from __future__ import unicode_literals import logging import re import socket +import sys from mopidy.utils import path from mopidy.config import validators @@ -254,6 +255,8 @@ class Path(ConfigValue): return ExpandedPath(value, expanded) def serialize(self, value, display=False): + if isinstance(value, unicode): + value = value.encode(sys.getfilesystemencoding()) if isinstance(value, ExpandedPath): return value.original return value diff --git a/tests/config/types_test.py b/tests/config/types_test.py index 65732f56..eee32af1 100644 --- a/tests/config/types_test.py +++ b/tests/config/types_test.py @@ -5,6 +5,7 @@ from __future__ import unicode_literals import logging import mock import socket +import sys from mopidy.config import types @@ -364,3 +365,10 @@ class PathTest(unittest.TestCase): def test_serialize_plain_string(self): value = types.Path() self.assertEqual('path', value.serialize(b'path')) + + def test_serialize_unicode_string(self): + value = types.Path() + expected = 'æøå'.encode(sys.getfilesystemencoding()) + result = value.serialize('æøå') + self.assertEqual(expected, result) + self.assertIsInstance(result, bytes)