diff --git a/beets/ui/commands.py b/beets/ui/commands.py index 325b549d3..eb7807dc8 100644 --- a/beets/ui/commands.py +++ b/beets/ui/commands.py @@ -86,13 +86,13 @@ def _print_keys(query): returned row, with identation of 2 spaces. """ for row in query: - print_(u' ' * 2 + six.text_type(row['key'])) + print_(u' ' * 2 + row['key'].decode('utf8')) def fields_func(lib, opts, args): def _print_rows(names): names.sort() - print_(six.text_type(' ' + '\n '.join(names))) + print_(u' ' + u'\n '.join(names)) print_(u"Item fields:") _print_rows(library.Item.all_keys()) @@ -1054,16 +1054,16 @@ default_commands.append(import_cmd) # list: Query and show library contents. -def list_items(lib, query, album, fmt=''): +def list_items(lib, query, album, fmt=u''): """Print out items in lib matching query. If album, then search for albums instead of single items. """ if album: for album in lib.albums(query): - ui.print_(six.text_type(format(album, fmt))) + ui.print_(format(album, fmt)) else: for item in lib.items(query): - ui.print_(six.text_type(format(item, fmt))) + ui.print_(format(item, fmt)) def list_func(lib, opts, args): @@ -1617,7 +1617,7 @@ def config_func(lib, opts, args): # Dump configuration. else: config_out = config.dump(full=opts.defaults, redact=opts.redact) - print_(six.text_type(config_out)) + print_(config_out.decode('utf8')) def config_edit(): @@ -1663,7 +1663,7 @@ default_commands.append(config_cmd) def print_completion(*args): for line in completion_script(default_commands + plugins.commands()): - print_(six.text_type(line), end=u'') + print_(line, end=u'') if not any(map(os.path.isfile, BASH_COMPLETION_PATHS)): log.warn(u'Warning: Unable to find the bash-completion package. ' u'Command line completion might not work.') @@ -1687,7 +1687,7 @@ def completion_script(commands): """ base_script = os.path.join(_package_path('beets.ui'), 'completion_base.sh') with open(base_script, 'r') as base_script: - yield base_script.read() + yield base_script.read().decode('utf8') options = {} aliases = {} @@ -1702,12 +1702,12 @@ def completion_script(commands): if re.match(r'^\w+$', alias): aliases[alias] = name - options[name] = {'flags': [], 'opts': []} + options[name] = {u'flags': [], u'opts': []} for opts in cmd.parser._get_all_options()[1:]: if opts.action in ('store_true', 'store_false'): - option_type = 'flags' + option_type = u'flags' else: - option_type = 'opts' + option_type = u'opts' options[name][option_type].extend( opts._short_opts + opts._long_opts @@ -1715,14 +1715,14 @@ def completion_script(commands): # Add global options options['_global'] = { - 'flags': [u'-v', u'--verbose'], - 'opts': u'-l --library -c --config -d --directory -h --help'.split( - u' ') + u'flags': [u'-v', u'--verbose'], + u'opts': + u'-l --library -c --config -d --directory -h --help'.split(u' ') } # Add flags common to all commands options['_common'] = { - 'flags': [u'-h', u'--help'] + u'flags': [u'-h', u'--help'] } # Start generating the script @@ -1750,7 +1750,7 @@ def completion_script(commands): for cmd, opts in options.items(): for option_type, option_list in opts.items(): if option_list: - option_list = ' '.join(option_list) + option_list = u' '.join(option_list) yield u" local %s__%s='%s'\n" % ( option_type, cmd, option_list) diff --git a/test/test_ui.py b/test/test_ui.py index 5ea875e42..63af553bf 100644 --- a/test/test_ui.py +++ b/test/test_ui.py @@ -49,7 +49,7 @@ class ListTest(unittest.TestCase): self.lib.add(self.item) self.lib.add_album([self.item]) - def _run_list(self, query=u'', album=False, path=False, fmt=''): + def _run_list(self, query=u'', album=False, path=False, fmt=u''): commands.list_items(self.lib, query, album, fmt) def test_list_outputs_item(self): @@ -69,7 +69,7 @@ class ListTest(unittest.TestCase): def test_list_item_path(self): with capture_stdout() as stdout: - self._run_list(fmt='$path') + self._run_list(fmt=u'$path') self.assertEqual(stdout.getvalue().strip(), u'xxx/yyy') def test_list_album_outputs_something(self): @@ -79,7 +79,7 @@ class ListTest(unittest.TestCase): def test_list_album_path(self): with capture_stdout() as stdout: - self._run_list(album=True, fmt='$path') + self._run_list(album=True, fmt=u'$path') self.assertEqual(stdout.getvalue().strip(), u'xxx') def test_list_album_omits_title(self): @@ -101,18 +101,18 @@ class ListTest(unittest.TestCase): def test_list_item_format_artist(self): with capture_stdout() as stdout: - self._run_list(fmt='$artist') + self._run_list(fmt=u'$artist') self.assertIn(u'the artist', stdout.getvalue()) def test_list_item_format_multiple(self): with capture_stdout() as stdout: - self._run_list(fmt='$artist - $album - $year') + self._run_list(fmt=u'$artist - $album - $year') self.assertEqual(u'the artist - the album - 0001', stdout.getvalue().strip()) def test_list_album_format(self): with capture_stdout() as stdout: - self._run_list(album=True, fmt='$genre') + self._run_list(album=True, fmt=u'$genre') self.assertIn(u'the genre', stdout.getvalue()) self.assertNotIn(u'the album', stdout.getvalue())