mirror of
https://github.com/beetbox/beets.git
synced 2026-01-16 21:25:14 +01:00
Removed unicode_literals from test_ui
* nosetests ´test.test_ui´ fails for two tests
This commit is contained in:
parent
df7241ecce
commit
b6e0696041
1 changed files with 156 additions and 155 deletions
311
test/test_ui.py
311
test/test_ui.py
|
|
@ -15,8 +15,7 @@
|
|||
|
||||
"""Tests for the command-line interface.
|
||||
"""
|
||||
from __future__ import (division, absolute_import, print_function,
|
||||
unicode_literals)
|
||||
from __future__ import (division, absolute_import, print_function)
|
||||
|
||||
import os
|
||||
import shutil
|
||||
|
|
@ -50,7 +49,7 @@ class ListTest(unittest.TestCase):
|
|||
self.lib.add(self.item)
|
||||
self.lib.add_album([self.item])
|
||||
|
||||
def _run_list(self, query='', album=False, path=False, fmt=''):
|
||||
def _run_list(self, query=u'', album=False, path=False, fmt=''):
|
||||
commands.list_items(self.lib, query, album, fmt)
|
||||
|
||||
def test_list_outputs_item(self):
|
||||
|
|
@ -135,14 +134,14 @@ class RemoveTest(_common.TestCase):
|
|||
|
||||
def test_remove_items_no_delete(self):
|
||||
self.io.addinput('y')
|
||||
commands.remove_items(self.lib, '', False, False)
|
||||
commands.remove_items(self.lib, u'', False, False)
|
||||
items = self.lib.items()
|
||||
self.assertEqual(len(list(items)), 0)
|
||||
self.assertTrue(os.path.exists(self.i.path))
|
||||
|
||||
def test_remove_items_with_delete(self):
|
||||
self.io.addinput('y')
|
||||
commands.remove_items(self.lib, '', False, True)
|
||||
commands.remove_items(self.lib, u'', False, True)
|
||||
items = self.lib.items()
|
||||
self.assertEqual(len(list(items)), 0)
|
||||
self.assertFalse(os.path.exists(self.i.path))
|
||||
|
|
@ -168,58 +167,58 @@ class ModifyTest(unittest.TestCase, TestHelper):
|
|||
# Item tests
|
||||
|
||||
def test_modify_item(self):
|
||||
self.modify("title=newTitle")
|
||||
self.modify(u"title=newTitle")
|
||||
item = self.lib.items().get()
|
||||
self.assertEqual(item.title, 'newTitle')
|
||||
self.assertEqual(item.title, u'newTitle')
|
||||
|
||||
def test_modify_item_abort(self):
|
||||
item = self.lib.items().get()
|
||||
title = item.title
|
||||
self.modify_inp('n', "title=newTitle")
|
||||
self.modify_inp('n', u"title=newTitle")
|
||||
item = self.lib.items().get()
|
||||
self.assertEqual(item.title, title)
|
||||
|
||||
def test_modify_item_no_change(self):
|
||||
title = "Tracktitle"
|
||||
title = u"Tracktitle"
|
||||
item = self.add_item_fixture(title=title)
|
||||
self.modify_inp('y', "title", "title={0}".format(title))
|
||||
self.modify_inp('y', u"title", u"title={0}".format(title))
|
||||
item = self.lib.items(title).get()
|
||||
self.assertEqual(item.title, title)
|
||||
|
||||
def test_modify_write_tags(self):
|
||||
self.modify("title=newTitle")
|
||||
self.modify(u"title=newTitle")
|
||||
item = self.lib.items().get()
|
||||
item.read()
|
||||
self.assertEqual(item.title, 'newTitle')
|
||||
self.assertEqual(item.title, u'newTitle')
|
||||
|
||||
def test_modify_dont_write_tags(self):
|
||||
self.modify("--nowrite", "title=newTitle")
|
||||
self.modify(u"--nowrite", u"title=newTitle")
|
||||
item = self.lib.items().get()
|
||||
item.read()
|
||||
self.assertNotEqual(item.title, 'newTitle')
|
||||
|
||||
def test_move(self):
|
||||
self.modify("title=newTitle")
|
||||
self.modify(u"title=newTitle")
|
||||
item = self.lib.items().get()
|
||||
self.assertIn(b'newTitle', item.path)
|
||||
|
||||
def test_not_move(self):
|
||||
self.modify("--nomove", "title=newTitle")
|
||||
self.modify(u"--nomove", u"title=newTitle")
|
||||
item = self.lib.items().get()
|
||||
self.assertNotIn(b'newTitle', item.path)
|
||||
|
||||
def test_no_write_no_move(self):
|
||||
self.modify("--nomove", "--nowrite", "title=newTitle")
|
||||
self.modify(u"--nomove", u"--nowrite", u"title=newTitle")
|
||||
item = self.lib.items().get()
|
||||
item.read()
|
||||
self.assertNotIn(b'newTitle', item.path)
|
||||
self.assertNotEqual(item.title, 'newTitle')
|
||||
self.assertNotEqual(item.title, u'newTitle')
|
||||
|
||||
def test_update_mtime(self):
|
||||
item = self.item
|
||||
old_mtime = item.mtime
|
||||
|
||||
self.modify("title=newTitle")
|
||||
self.modify(u"title=newTitle")
|
||||
item.load()
|
||||
self.assertNotEqual(old_mtime, item.mtime)
|
||||
self.assertEqual(item.current_mtime(), item.mtime)
|
||||
|
|
@ -227,53 +226,53 @@ class ModifyTest(unittest.TestCase, TestHelper):
|
|||
def test_reset_mtime_with_no_write(self):
|
||||
item = self.item
|
||||
|
||||
self.modify("--nowrite", "title=newTitle")
|
||||
self.modify(u"--nowrite", u"title=newTitle")
|
||||
item.load()
|
||||
self.assertEqual(0, item.mtime)
|
||||
|
||||
def test_selective_modify(self):
|
||||
title = "Tracktitle"
|
||||
album = "album"
|
||||
origArtist = "composer"
|
||||
newArtist = "coverArtist"
|
||||
title = u"Tracktitle"
|
||||
album = u"album"
|
||||
origArtist = u"composer"
|
||||
newArtist = u"coverArtist"
|
||||
for i in range(0, 10):
|
||||
self.add_item_fixture(title="{0}{1}".format(title, i),
|
||||
self.add_item_fixture(title=u"{0}{1}".format(title, i),
|
||||
artist=origArtist,
|
||||
album=album)
|
||||
self.modify_inp('s\ny\ny\ny\nn\nn\ny\ny\ny\ny\nn',
|
||||
title, "artist={0}".format(newArtist))
|
||||
origItems = self.lib.items("artist:{0}".format(origArtist))
|
||||
newItems = self.lib.items("artist:{0}".format(newArtist))
|
||||
title, u"artist={0}".format(newArtist))
|
||||
origItems = self.lib.items(u"artist:{0}".format(origArtist))
|
||||
newItems = self.lib.items(u"artist:{0}".format(newArtist))
|
||||
self.assertEqual(len(list(origItems)), 3)
|
||||
self.assertEqual(len(list(newItems)), 7)
|
||||
|
||||
# Album Tests
|
||||
|
||||
def test_modify_album(self):
|
||||
self.modify("--album", "album=newAlbum")
|
||||
self.modify(u"--album", u"album=newAlbum")
|
||||
album = self.lib.albums().get()
|
||||
self.assertEqual(album.album, 'newAlbum')
|
||||
self.assertEqual(album.album, u'newAlbum')
|
||||
|
||||
def test_modify_album_write_tags(self):
|
||||
self.modify("--album", "album=newAlbum")
|
||||
self.modify(u"--album", u"album=newAlbum")
|
||||
item = self.lib.items().get()
|
||||
item.read()
|
||||
self.assertEqual(item.album, 'newAlbum')
|
||||
self.assertEqual(item.album, u'newAlbum')
|
||||
|
||||
def test_modify_album_dont_write_tags(self):
|
||||
self.modify("--album", "--nowrite", "album=newAlbum")
|
||||
self.modify(u"--album", u"--nowrite", u"album=newAlbum")
|
||||
item = self.lib.items().get()
|
||||
item.read()
|
||||
self.assertEqual(item.album, 'the album')
|
||||
self.assertEqual(item.album, u'the album')
|
||||
|
||||
def test_album_move(self):
|
||||
self.modify("--album", "album=newAlbum")
|
||||
self.modify(u"--album", u"album=newAlbum")
|
||||
item = self.lib.items().get()
|
||||
item.read()
|
||||
self.assertIn(b'newAlbum', item.path)
|
||||
|
||||
def test_album_not_move(self):
|
||||
self.modify("--nomove", "--album", "album=newAlbum")
|
||||
self.modify(u"--nomove", u"--album", u"album=newAlbum")
|
||||
item = self.lib.items().get()
|
||||
item.read()
|
||||
self.assertNotIn(b'newAlbum', item.path)
|
||||
|
|
@ -281,62 +280,62 @@ class ModifyTest(unittest.TestCase, TestHelper):
|
|||
# Misc
|
||||
|
||||
def test_write_initial_key_tag(self):
|
||||
self.modify("initial_key=C#m")
|
||||
self.modify(u"initial_key=C#m")
|
||||
item = self.lib.items().get()
|
||||
mediafile = MediaFile(item.path)
|
||||
self.assertEqual(mediafile.initial_key, 'C#m')
|
||||
self.assertEqual(mediafile.initial_key, u'C#m')
|
||||
|
||||
def test_set_flexattr(self):
|
||||
self.modify("flexattr=testAttr")
|
||||
self.modify(u"flexattr=testAttr")
|
||||
item = self.lib.items().get()
|
||||
self.assertEqual(item.flexattr, 'testAttr')
|
||||
self.assertEqual(item.flexattr, u'testAttr')
|
||||
|
||||
def test_remove_flexattr(self):
|
||||
item = self.lib.items().get()
|
||||
item.flexattr = 'testAttr'
|
||||
item.flexattr = u'testAttr'
|
||||
item.store()
|
||||
|
||||
self.modify("flexattr!")
|
||||
self.modify(u"flexattr!")
|
||||
item = self.lib.items().get()
|
||||
self.assertNotIn("flexattr", item)
|
||||
self.assertNotIn(u"flexattr", item)
|
||||
|
||||
@unittest.skip('not yet implemented')
|
||||
@unittest.skip(u'not yet implemented')
|
||||
def test_delete_initial_key_tag(self):
|
||||
item = self.lib.items().get()
|
||||
item.initial_key = 'C#m'
|
||||
item.initial_key = u'C#m'
|
||||
item.write()
|
||||
item.store()
|
||||
|
||||
mediafile = MediaFile(item.path)
|
||||
self.assertEqual(mediafile.initial_key, 'C#m')
|
||||
self.assertEqual(mediafile.initial_key, u'C#m')
|
||||
|
||||
self.modify("initial_key!")
|
||||
self.modify(u"initial_key!")
|
||||
mediafile = MediaFile(item.path)
|
||||
self.assertIsNone(mediafile.initial_key)
|
||||
|
||||
def test_arg_parsing_colon_query(self):
|
||||
(query, mods, dels) = commands.modify_parse_args(["title:oldTitle",
|
||||
"title=newTitle"])
|
||||
self.assertEqual(query, ["title:oldTitle"])
|
||||
self.assertEqual(mods, {"title": "newTitle"})
|
||||
(query, mods, dels) = commands.modify_parse_args([u"title:oldTitle",
|
||||
u"title=newTitle"])
|
||||
self.assertEqual(query, [u"title:oldTitle"])
|
||||
self.assertEqual(mods, {"title": u"newTitle"})
|
||||
|
||||
def test_arg_parsing_delete(self):
|
||||
(query, mods, dels) = commands.modify_parse_args(["title:oldTitle",
|
||||
"title!"])
|
||||
self.assertEqual(query, ["title:oldTitle"])
|
||||
(query, mods, dels) = commands.modify_parse_args([u"title:oldTitle",
|
||||
u"title!"])
|
||||
self.assertEqual(query, [u"title:oldTitle"])
|
||||
self.assertEqual(dels, ["title"])
|
||||
|
||||
def test_arg_parsing_query_with_exclaimation(self):
|
||||
(query, mods, dels) = commands.modify_parse_args(["title:oldTitle!",
|
||||
"title=newTitle!"])
|
||||
self.assertEqual(query, ["title:oldTitle!"])
|
||||
self.assertEqual(mods, {"title": "newTitle!"})
|
||||
(query, mods, dels) = commands.modify_parse_args([u"title:oldTitle!",
|
||||
u"title=newTitle!"])
|
||||
self.assertEqual(query, [u"title:oldTitle!"])
|
||||
self.assertEqual(mods, {"title": u"newTitle!"})
|
||||
|
||||
def test_arg_parsing_equals_in_value(self):
|
||||
(query, mods, dels) = commands.modify_parse_args(["title:foo=bar",
|
||||
"title=newTitle"])
|
||||
self.assertEqual(query, ["title:foo=bar"])
|
||||
self.assertEqual(mods, {"title": "newTitle"})
|
||||
(query, mods, dels) = commands.modify_parse_args([u"title:foo=bar",
|
||||
u"title=newTitle"])
|
||||
self.assertEqual(query, [u"title:foo=bar"])
|
||||
self.assertEqual(mods, {"title": u"newTitle"})
|
||||
|
||||
|
||||
class WriteTest(unittest.TestCase, TestHelper):
|
||||
|
|
@ -352,7 +351,7 @@ class WriteTest(unittest.TestCase, TestHelper):
|
|||
|
||||
def test_update_mtime(self):
|
||||
item = self.add_item_fixture()
|
||||
item['title'] = 'a new title'
|
||||
item['title'] = u'a new title'
|
||||
item.store()
|
||||
|
||||
item = self.lib.items().get()
|
||||
|
|
@ -384,13 +383,13 @@ class WriteTest(unittest.TestCase, TestHelper):
|
|||
item.read()
|
||||
old_title = item.title
|
||||
|
||||
item.title = 'new title'
|
||||
item.title = u'new title'
|
||||
item.store()
|
||||
|
||||
with capture_stdout() as stdout:
|
||||
self.write_cmd()
|
||||
|
||||
self.assertTrue('{0} -> new title'.format(old_title)
|
||||
self.assertTrue(u'{0} -> new title'.format(old_title)
|
||||
in stdout.getvalue())
|
||||
|
||||
|
||||
|
|
@ -522,40 +521,40 @@ class UpdateTest(_common.TestCase):
|
|||
|
||||
def test_modified_metadata_detected(self):
|
||||
mf = MediaFile(self.i.path)
|
||||
mf.title = 'differentTitle'
|
||||
mf.title = u'differentTitle'
|
||||
mf.save()
|
||||
self._update()
|
||||
item = self.lib.items().get()
|
||||
self.assertEqual(item.title, 'differentTitle')
|
||||
self.assertEqual(item.title, u'differentTitle')
|
||||
|
||||
def test_modified_metadata_moved(self):
|
||||
mf = MediaFile(self.i.path)
|
||||
mf.title = 'differentTitle'
|
||||
mf.title = u'differentTitle'
|
||||
mf.save()
|
||||
self._update(move=True)
|
||||
item = self.lib.items().get()
|
||||
self.assertTrue('differentTitle' in item.path)
|
||||
self.assertTrue(u'differentTitle' in item.path)
|
||||
|
||||
def test_modified_metadata_not_moved(self):
|
||||
mf = MediaFile(self.i.path)
|
||||
mf.title = 'differentTitle'
|
||||
mf.title = u'differentTitle'
|
||||
mf.save()
|
||||
self._update(move=False)
|
||||
item = self.lib.items().get()
|
||||
self.assertTrue('differentTitle' not in item.path)
|
||||
self.assertTrue(u'differentTitle' not in item.path)
|
||||
|
||||
def test_modified_album_metadata_moved(self):
|
||||
mf = MediaFile(self.i.path)
|
||||
mf.album = 'differentAlbum'
|
||||
mf.album = u'differentAlbum'
|
||||
mf.save()
|
||||
self._update(move=True)
|
||||
item = self.lib.items().get()
|
||||
self.assertTrue('differentAlbum' in item.path)
|
||||
self.assertTrue(u'differentAlbum' in item.path)
|
||||
|
||||
def test_modified_album_metadata_art_moved(self):
|
||||
artpath = self.album.artpath
|
||||
mf = MediaFile(self.i.path)
|
||||
mf.album = 'differentAlbum'
|
||||
mf.album = u'differentAlbum'
|
||||
mf.save()
|
||||
self._update(move=True)
|
||||
album = self.lib.albums()[0]
|
||||
|
|
@ -563,7 +562,7 @@ class UpdateTest(_common.TestCase):
|
|||
|
||||
def test_mtime_match_skips_update(self):
|
||||
mf = MediaFile(self.i.path)
|
||||
mf.title = 'differentTitle'
|
||||
mf.title = u'differentTitle'
|
||||
mf.save()
|
||||
|
||||
# Make in-memory mtime match on-disk mtime.
|
||||
|
|
@ -572,7 +571,7 @@ class UpdateTest(_common.TestCase):
|
|||
|
||||
self._update(reset_mtime=False)
|
||||
item = self.lib.items().get()
|
||||
self.assertEqual(item.title, 'full')
|
||||
self.assertEqual(item.title, u'full')
|
||||
|
||||
|
||||
class PrintTest(_common.TestCase):
|
||||
|
|
@ -588,7 +587,7 @@ class PrintTest(_common.TestCase):
|
|||
try:
|
||||
ui.print_(u'something')
|
||||
except TypeError:
|
||||
self.fail('TypeError during print')
|
||||
self.fail(u'TypeError during print')
|
||||
finally:
|
||||
if lang:
|
||||
os.environ['LANG'] = lang
|
||||
|
|
@ -602,7 +601,7 @@ class PrintTest(_common.TestCase):
|
|||
try:
|
||||
ui.print_(u'something')
|
||||
except ValueError:
|
||||
self.fail('ValueError during print')
|
||||
self.fail(u'ValueError during print')
|
||||
finally:
|
||||
if old_lang:
|
||||
os.environ['LANG'] = old_lang
|
||||
|
|
@ -677,7 +676,7 @@ class ConfigTest(unittest.TestCase, TestHelper):
|
|||
self.teardown_beets()
|
||||
|
||||
def _make_test_cmd(self):
|
||||
test_cmd = ui.Subcommand('test', help='test')
|
||||
test_cmd = ui.Subcommand('test', help=u'test')
|
||||
|
||||
def run(lib, options, args):
|
||||
test_cmd.lib = lib
|
||||
|
|
@ -747,7 +746,7 @@ class ConfigTest(unittest.TestCase, TestHelper):
|
|||
ui._raw_main(['test'])
|
||||
replacements = self.test_cmd.lib.replacements
|
||||
self.assertEqual(replacements, [
|
||||
(re.compile(r'[xy]'), 'z'),
|
||||
(re.compile(r'[xy]'), u'z'),
|
||||
(re.compile(r'foo'), 'bar'),
|
||||
])
|
||||
|
||||
|
|
@ -929,34 +928,34 @@ class ShowModelChangeTest(_common.TestCase):
|
|||
self.b.title = 'x'
|
||||
change, out = self._show()
|
||||
self.assertTrue(change)
|
||||
self.assertTrue('title' in out)
|
||||
self.assertTrue(u'title' in out)
|
||||
|
||||
def test_int_fixed_field_change(self):
|
||||
self.b.track = 9
|
||||
change, out = self._show()
|
||||
self.assertTrue(change)
|
||||
self.assertTrue('track' in out)
|
||||
self.assertTrue(u'track' in out)
|
||||
|
||||
def test_floats_close_to_identical(self):
|
||||
self.a.length = 1.00001
|
||||
self.b.length = 1.00005
|
||||
change, out = self._show()
|
||||
self.assertFalse(change)
|
||||
self.assertEqual(out, '')
|
||||
self.assertEqual(out, u'')
|
||||
|
||||
def test_floats_different(self):
|
||||
self.a.length = 1.00001
|
||||
self.b.length = 2.00001
|
||||
change, out = self._show()
|
||||
self.assertTrue(change)
|
||||
self.assertTrue('length' in out)
|
||||
self.assertTrue(u'length' in out)
|
||||
|
||||
def test_both_values_shown(self):
|
||||
self.a.title = 'foo'
|
||||
self.b.title = 'bar'
|
||||
self.a.title = u'foo'
|
||||
self.b.title = u'bar'
|
||||
change, out = self._show()
|
||||
self.assertTrue('foo' in out)
|
||||
self.assertTrue('bar' in out)
|
||||
self.assertTrue(u'foo' in out)
|
||||
self.assertTrue(u'bar' in out)
|
||||
|
||||
|
||||
class ShowChangeTest(_common.TestCase):
|
||||
|
|
@ -1014,12 +1013,12 @@ class ShowChangeTest(_common.TestCase):
|
|||
def test_album_data_change_with_unicode(self):
|
||||
msg = self._show_change(cur_artist=u'caf\xe9',
|
||||
cur_album=u'another album')
|
||||
self.assertTrue('correcting tags from:' in msg)
|
||||
self.assertTrue(u'correcting tags from:' in msg)
|
||||
|
||||
def test_item_data_change_title_missing(self):
|
||||
self.items[0].title = u''
|
||||
msg = re.sub(r' +', ' ', self._show_change())
|
||||
self.assertTrue('file.mp3 -> the title' in msg)
|
||||
self.assertTrue(u'file.mp3 -> the title' in msg)
|
||||
|
||||
def test_item_data_change_title_missing_with_unicode_filename(self):
|
||||
self.items[0].title = u''
|
||||
|
|
@ -1042,28 +1041,28 @@ class SummarizeItemsTest(_common.TestCase):
|
|||
|
||||
def test_summarize_item(self):
|
||||
summary = commands.summarize_items([], True)
|
||||
self.assertEqual(summary, "")
|
||||
self.assertEqual(summary, u"")
|
||||
|
||||
summary = commands.summarize_items([self.item], True)
|
||||
self.assertEqual(summary, "F, 4kbps, 10:54, 987.0 B")
|
||||
self.assertEqual(summary, u"F, 4kbps, 10:54, 987.0 B")
|
||||
|
||||
def test_summarize_items(self):
|
||||
summary = commands.summarize_items([], False)
|
||||
self.assertEqual(summary, "0 items")
|
||||
self.assertEqual(summary, u"0 items")
|
||||
|
||||
summary = commands.summarize_items([self.item], False)
|
||||
self.assertEqual(summary, "1 items, F, 4kbps, 10:54, 987.0 B")
|
||||
self.assertEqual(summary, u"1 items, F, 4kbps, 10:54, 987.0 B")
|
||||
|
||||
i2 = deepcopy(self.item)
|
||||
summary = commands.summarize_items([self.item, i2], False)
|
||||
self.assertEqual(summary, "2 items, F, 4kbps, 21:48, 1.9 KiB")
|
||||
self.assertEqual(summary, u"2 items, F, 4kbps, 21:48, 1.9 KiB")
|
||||
|
||||
i2.format = "G"
|
||||
summary = commands.summarize_items([self.item, i2], False)
|
||||
self.assertEqual(summary, "2 items, F 1, G 1, 4kbps, 21:48, 1.9 KiB")
|
||||
self.assertEqual(summary, u"2 items, F 1, G 1, 4kbps, 21:48, 1.9 KiB")
|
||||
|
||||
summary = commands.summarize_items([self.item, i2, i2], False)
|
||||
self.assertEqual(summary, "3 items, G 2, F 1, 4kbps, 32:42, 2.9 KiB")
|
||||
self.assertEqual(summary, u"3 items, G 2, F 1, 4kbps, 32:42, 2.9 KiB")
|
||||
|
||||
|
||||
class PathFormatTest(_common.TestCase):
|
||||
|
|
@ -1073,8 +1072,8 @@ class PathFormatTest(_common.TestCase):
|
|||
config['paths'] = {u'foo': u'bar'}
|
||||
pf = ui.get_path_formats()
|
||||
key, tmpl = pf[0]
|
||||
self.assertEqual(key, 'foo')
|
||||
self.assertEqual(tmpl.original, 'bar')
|
||||
self.assertEqual(key, u'foo')
|
||||
self.assertEqual(tmpl.original, u'bar')
|
||||
self.assertEqual(pf[1:], default_formats)
|
||||
|
||||
|
||||
|
|
@ -1096,7 +1095,7 @@ class CompletionTest(_common.TestCase):
|
|||
# Tests run in bash
|
||||
cmd = os.environ.get('BEETS_TEST_SHELL', '/bin/bash --norc').split()
|
||||
if not has_program(cmd[0]):
|
||||
self.skipTest('bash not available')
|
||||
self.skipTest(u'bash not available')
|
||||
tester = subprocess.Popen(cmd, stdin=subprocess.PIPE,
|
||||
stdout=subprocess.PIPE)
|
||||
|
||||
|
|
@ -1106,12 +1105,12 @@ class CompletionTest(_common.TestCase):
|
|||
bash_completion = path
|
||||
break
|
||||
else:
|
||||
self.skipTest('bash-completion script not found')
|
||||
self.skipTest(u'bash-completion script not found')
|
||||
try:
|
||||
with open(util.syspath(bash_completion), 'r') as f:
|
||||
tester.stdin.writelines(f)
|
||||
except IOError:
|
||||
self.skipTest('could not read bash-completion script')
|
||||
self.skipTest(u'could not read bash-completion script')
|
||||
|
||||
# Load completion script.
|
||||
self.io.install()
|
||||
|
|
@ -1125,9 +1124,9 @@ class CompletionTest(_common.TestCase):
|
|||
with open(test_script, 'r') as test_script:
|
||||
tester.stdin.writelines(test_script)
|
||||
(out, err) = tester.communicate()
|
||||
if tester.returncode != 0 or out != "completion tests passed\n":
|
||||
if tester.returncode != 0 or out != u"completion tests passed\n":
|
||||
print(out)
|
||||
self.fail('test/test_completion.sh did not execute properly')
|
||||
self.fail(u'test/test_completion.sh did not execute properly')
|
||||
|
||||
|
||||
class CommonOptionsParserCliTest(unittest.TestCase, TestHelper):
|
||||
|
|
@ -1146,56 +1145,57 @@ class CommonOptionsParserCliTest(unittest.TestCase, TestHelper):
|
|||
self.teardown_beets()
|
||||
|
||||
def test_base(self):
|
||||
l = self.run_with_output('ls')
|
||||
self.assertEqual(l, 'the artist - the album - the title\n')
|
||||
l = self.run_with_output(u'ls')
|
||||
self.assertEqual(l, u'the artist - the album - the title\n')
|
||||
|
||||
l = self.run_with_output('ls', '-a')
|
||||
self.assertEqual(l, 'the album artist - the album\n')
|
||||
l = self.run_with_output(u'ls', u'-a')
|
||||
self.assertEqual(l, u'the album artist - the album\n')
|
||||
|
||||
def test_path_option(self):
|
||||
l = self.run_with_output('ls', '-p')
|
||||
self.assertEqual(l, 'xxx/yyy\n')
|
||||
l = self.run_with_output(u'ls', u'-p')
|
||||
self.assertEqual(l, u'xxx/yyy\n')
|
||||
|
||||
l = self.run_with_output('ls', '-a', '-p')
|
||||
self.assertEqual(l, 'xxx\n')
|
||||
l = self.run_with_output(u'ls', u'-a', u'-p')
|
||||
self.assertEqual(l, u'xxx\n')
|
||||
|
||||
def test_format_option(self):
|
||||
l = self.run_with_output('ls', '-f', '$artist')
|
||||
self.assertEqual(l, 'the artist\n')
|
||||
l = self.run_with_output(u'ls', u'-f', '$artist')
|
||||
self.assertEqual(l, u'the artist\n')
|
||||
|
||||
l = self.run_with_output('ls', '-a', '-f', '$albumartist')
|
||||
self.assertEqual(l, 'the album artist\n')
|
||||
l = self.run_with_output(u'ls', u'-a', u'-f', '$albumartist')
|
||||
self.assertEqual(l, u'the album artist\n')
|
||||
|
||||
def test_root_format_option(self):
|
||||
l = self.run_with_output('--format-item', '$artist',
|
||||
'--format-album', 'foo', 'ls')
|
||||
self.assertEqual(l, 'the artist\n')
|
||||
l = self.run_with_output(u'--format-item', u'$artist',
|
||||
u'--format-album', u'foo', u'ls')
|
||||
self.assertEqual(l, u'the artist\n')
|
||||
|
||||
l = self.run_with_output('--format-item', 'foo',
|
||||
'--format-album', '$albumartist', 'ls', '-a')
|
||||
self.assertEqual(l, 'the album artist\n')
|
||||
l = self.run_with_output(u'--format-item', u'foo',
|
||||
u'--format-album', u'$albumartist',
|
||||
u'ls', u'-a')
|
||||
self.assertEqual(l, u'the album artist\n')
|
||||
|
||||
def test_help(self):
|
||||
l = self.run_with_output('help')
|
||||
self.assertIn('Usage:', l)
|
||||
l = self.run_with_output(u'help')
|
||||
self.assertIn(u'Usage:', l)
|
||||
|
||||
l = self.run_with_output('help', 'list')
|
||||
self.assertIn('Usage:', l)
|
||||
l = self.run_with_output(u'help', u'list')
|
||||
self.assertIn(u'Usage:', l)
|
||||
|
||||
with self.assertRaises(ui.UserError):
|
||||
self.run_command('help', 'this.is.not.a.real.command')
|
||||
self.run_command(u'help', u'this.is.not.a.real.command')
|
||||
|
||||
def test_stats(self):
|
||||
l = self.run_with_output('stats')
|
||||
self.assertIn('Approximate total size:', l)
|
||||
l = self.run_with_output(u'stats')
|
||||
self.assertIn(u'Approximate total size:', l)
|
||||
|
||||
# # Need to have more realistic library setup for this to work
|
||||
# l = self.run_with_output('stats', '-e')
|
||||
# self.assertIn('Total size:', l)
|
||||
|
||||
def test_version(self):
|
||||
l = self.run_with_output('version')
|
||||
self.assertIn('no plugins loaded', l)
|
||||
l = self.run_with_output(u'version')
|
||||
self.assertIn(u'no plugins loaded', l)
|
||||
|
||||
# # Need to have plugin loaded
|
||||
# l = self.run_with_output('version')
|
||||
|
|
@ -1216,8 +1216,9 @@ class CommonOptionsParserTest(unittest.TestCase, TestHelper):
|
|||
self.assertTrue(bool(parser._album_flags))
|
||||
|
||||
self.assertEqual(parser.parse_args([]), ({'album': None}, []))
|
||||
self.assertEqual(parser.parse_args(['-a']), ({'album': True}, []))
|
||||
self.assertEqual(parser.parse_args(['--album']), ({'album': True}, []))
|
||||
self.assertEqual(parser.parse_args([u'-a']), ({'album': True}, []))
|
||||
self.assertEqual(parser.parse_args([u'--album']),
|
||||
({'album': True}, []))
|
||||
|
||||
def test_path_option(self):
|
||||
parser = ui.CommonOptionsParser()
|
||||
|
|
@ -1228,13 +1229,13 @@ class CommonOptionsParserTest(unittest.TestCase, TestHelper):
|
|||
self.assertEqual(parser.parse_args([]), ({'path': None}, []))
|
||||
self.assertEqual(config['format_item'].get(unicode), u'$foo')
|
||||
|
||||
self.assertEqual(parser.parse_args(['-p']),
|
||||
({'path': True, 'format': '$path'}, []))
|
||||
self.assertEqual(parser.parse_args([u'-p']),
|
||||
({'path': True, 'format': u'$path'}, []))
|
||||
self.assertEqual(parser.parse_args(['--path']),
|
||||
({'path': True, 'format': '$path'}, []))
|
||||
({'path': True, 'format': u'$path'}, []))
|
||||
|
||||
self.assertEqual(config['format_item'].get(unicode), '$path')
|
||||
self.assertEqual(config['format_album'].get(unicode), '$path')
|
||||
self.assertEqual(config['format_item'].get(unicode), u'$path')
|
||||
self.assertEqual(config['format_album'].get(unicode), u'$path')
|
||||
|
||||
def test_format_option(self):
|
||||
parser = ui.CommonOptionsParser()
|
||||
|
|
@ -1245,13 +1246,13 @@ class CommonOptionsParserTest(unittest.TestCase, TestHelper):
|
|||
self.assertEqual(parser.parse_args([]), ({'format': None}, []))
|
||||
self.assertEqual(config['format_item'].get(unicode), u'$foo')
|
||||
|
||||
self.assertEqual(parser.parse_args(['-f', '$bar']),
|
||||
({'format': '$bar'}, []))
|
||||
self.assertEqual(parser.parse_args(['--format', '$baz']),
|
||||
({'format': '$baz'}, []))
|
||||
self.assertEqual(parser.parse_args([u'-f', u'$bar']),
|
||||
({'format': u'$bar'}, []))
|
||||
self.assertEqual(parser.parse_args([u'--format', u'$baz']),
|
||||
({'format': u'$baz'}, []))
|
||||
|
||||
self.assertEqual(config['format_item'].get(unicode), '$baz')
|
||||
self.assertEqual(config['format_album'].get(unicode), '$baz')
|
||||
self.assertEqual(config['format_item'].get(unicode), u'$baz')
|
||||
self.assertEqual(config['format_album'].get(unicode), u'$baz')
|
||||
|
||||
def test_format_option_with_target(self):
|
||||
with self.assertRaises(KeyError):
|
||||
|
|
@ -1263,11 +1264,11 @@ class CommonOptionsParserTest(unittest.TestCase, TestHelper):
|
|||
config['format_item'].set('$item')
|
||||
config['format_album'].set('$album')
|
||||
|
||||
self.assertEqual(parser.parse_args(['-f', '$bar']),
|
||||
({'format': '$bar'}, []))
|
||||
self.assertEqual(parser.parse_args([u'-f', u'$bar']),
|
||||
({'format': u'$bar'}, []))
|
||||
|
||||
self.assertEqual(config['format_item'].get(unicode), '$bar')
|
||||
self.assertEqual(config['format_album'].get(unicode), '$album')
|
||||
self.assertEqual(config['format_item'].get(unicode), u'$bar')
|
||||
self.assertEqual(config['format_album'].get(unicode), u'$album')
|
||||
|
||||
def test_format_option_with_album(self):
|
||||
parser = ui.CommonOptionsParser()
|
||||
|
|
@ -1277,16 +1278,16 @@ class CommonOptionsParserTest(unittest.TestCase, TestHelper):
|
|||
config['format_item'].set('$item')
|
||||
config['format_album'].set('$album')
|
||||
|
||||
parser.parse_args(['-f', '$bar'])
|
||||
self.assertEqual(config['format_item'].get(unicode), '$bar')
|
||||
self.assertEqual(config['format_album'].get(unicode), '$album')
|
||||
parser.parse_args([u'-f', u'$bar'])
|
||||
self.assertEqual(config['format_item'].get(unicode), u'$bar')
|
||||
self.assertEqual(config['format_album'].get(unicode), u'$album')
|
||||
|
||||
parser.parse_args(['-a', '-f', '$foo'])
|
||||
self.assertEqual(config['format_item'].get(unicode), '$bar')
|
||||
self.assertEqual(config['format_album'].get(unicode), '$foo')
|
||||
parser.parse_args([u'-a', u'-f', u'$foo'])
|
||||
self.assertEqual(config['format_item'].get(unicode), u'$bar')
|
||||
self.assertEqual(config['format_album'].get(unicode), u'$foo')
|
||||
|
||||
parser.parse_args(['-f', '$foo2', '-a'])
|
||||
self.assertEqual(config['format_album'].get(unicode), '$foo2')
|
||||
parser.parse_args([u'-f', u'$foo2', u'-a'])
|
||||
self.assertEqual(config['format_album'].get(unicode), u'$foo2')
|
||||
|
||||
def test_add_all_common_options(self):
|
||||
parser = ui.CommonOptionsParser()
|
||||
|
|
|
|||
Loading…
Reference in a new issue