def test_show_user_config_with_defaults(self): with capture_stdout() as output: self.run_command('config', '-d') output = yaml.load(output.getvalue()) self.assertEqual(output['option'], 'value') self.assertEqual(output['library'], 'lib') self.assertEqual(output['import']['timid'], False)
def test_show_redacted_user_config_with_defaults(self): with capture_stdout() as output: self.run_command('config', '-d') output = yaml.load(output.getvalue()) self.assertEqual(output['option'], 'value') self.assertEqual(output['password'], 'REDACTED') self.assertEqual(output['import']['timid'], False)
def test_bareasc_format_output(self): """Bare-ASCII version of list -f command - check output.""" with capture_stdout() as output: self.run_command('bareasc', 'with accents', '-f', '$artist:: $title') self.assertEqual('Antonin Dvorak:: with accents\n', output.getvalue())
def test_list_unicode_query(self): self.item.title = u'na\xefve' self.item.store() self.lib._connection().commit() with capture_stdout() as stdout: self._run_list([u'na\xefve']) out = stdout.getvalue() self.assertTrue(u'na\xefve' in out.decode(stdout.encoding))
def test_print_tracks_output_as_tracks(self): """Test the output of the "print tracks" choice, as singletons.""" self.matcher.matching = AutotagStub.BAD with capture_stdout() as output: with control_stdin("\n".join(["t", "s", "p", "s"])): # as Tracks; Skip; Print tracks; Skip self.importer.run() # Manually build the string for comparing the output. tracklist = u"Print tracks? " u"02. Tag Title 2 - Tag Artist (0:01)" self.assertIn(tracklist, output.getvalue())
def test_print_tracks_output_as_tracks(self): """Test the output of the "print tracks" choice, as singletons.""" self.matcher.matching = AutotagStub.BAD with capture_stdout() as output: with control_stdin('\n'.join(['t', 's', 'p', 's'])): # as Tracks; Skip; Print tracks; Skip self.importer.run() # Manually build the string for comparing the output. tracklist = (u'Print tracks? ' u'02. Tag Title 2 - Tag Artist (0:01)') self.assertIn(tracklist, output.getvalue())
def test_write_metadata_field(self): item = self.add_item_fixture() item.read() old_title = item.title item.title = "new title" item.store() with capture_stdout() as stdout: self.write_cmd() self.assertTrue("{0} -> new title".format(old_title) in stdout.getvalue())
def test_write_metadata_field(self): item = self.add_item_fixture() item.read() old_title = item.title item.title = u'new title' item.store() with capture_stdout() as stdout: self.write_cmd() self.assertTrue( u'{0} -> new title'.format(old_title) in stdout.getvalue())
def test_print_tracks_output(self): """Test the output of the "print tracks" choice.""" self.matcher.matching = AutotagStub.BAD with capture_stdout() as output: with control_stdin('\n'.join(['p', 's'])): # Print tracks; Skip self.importer.run() # Manually build the string for comparing the output. tracklist = ('Print tracks? ' '01. Tag Title 1 - Tag Artist (0:01)\n' '02. Tag Title 2 - Tag Artist (0:01)') self.assertIn(tracklist, output.getvalue())
def test_non_metadata_field_unchanged(self): """Changing a non-"tag" field like `bitrate` and writing should have no effect. """ # An item that starts out "clean". item = self.add_item_fixture() item.read() # ... but with a mismatched bitrate. item.bitrate = 123 item.store() with capture_stdout() as stdout: self.write_cmd() self.assertEqual(stdout.getvalue(), '')
def test_list_album_omits_title(self): with capture_stdout() as stdout: self._run_list(album=True) self.assertNotIn(u'the title', stdout.getvalue())
def test_application_plugin_list(self): with capture_stdout() as out: self.runcli("version") self.assertIn("plugins: {0}".format(PLUGIN_NAME), out.getvalue())
def test_list_item_format_multiple(self): with capture_stdout() as stdout: self._run_list(fmt='$artist - $album - $year') self.assertEqual(u'the artist - the album - 0001', stdout.getvalue().strip())
def test_config_paths_with_cli(self): with capture_stdout() as output: self.run_command('--config', self.cli_config_path, 'config', '-p') paths = output.getvalue().split('\n') self.assertEqual(len(paths), 3) self.assertEqual(paths[0], self.cli_config_path)
def test_show_redacted_user_config(self): with capture_stdout() as output: self.run_command('config') output = yaml.load(output.getvalue()) self.assertEqual(output['option'], 'value') self.assertEqual(output['password'], 'REDACTED')
def test_list_album_format(self): with capture_stdout() as stdout: self._run_list(album=True, fmt=u'$genre') self.assertIn(u'the genre', stdout.getvalue()) self.assertNotIn(u'the album', stdout.getvalue())
def test_list_item_format_multiple(self): with capture_stdout() as stdout: self._run_list(fmt=u'$artist - $album - $year') self.assertEqual(u'the artist - the album - 0001', stdout.getvalue().strip())
def test_list_item_format_artist(self): with capture_stdout() as stdout: self._run_list(fmt=u'$artist') self.assertIn(u'the artist', stdout.getvalue())
def _run_list(self, query=u'', album=False, path=False, fmt=u''): with capture_stdout() as stdout: commands.list_items(self.lib, query, album, fmt) return stdout
def test_show_user_config_with_cli(self): with capture_stdout() as output: self.run_command('--config', self.cli_config_path, 'config') output = yaml.load(output.getvalue()) self.assertEqual(output['library'], 'lib') self.assertEqual(output['option'], 'cli overwrite')
def test_list_album_uses_album_artist(self): with capture_stdout() as stdout: self._run_list(album=True) self.assertNotIn(u'the artist', stdout.getvalue()) self.assertIn(u'the album artist', stdout.getvalue())
def test_list_outputs_item(self): with capture_stdout() as stdout: self._run_list() self.assertIn(u'the title', stdout.getvalue())
def test_application(self): with capture_stdout() as out: self.runcli() self.assertIn(PLUGIN_NAME, out.getvalue()) self.assertIn(PLUGIN_SHORT_DESCRIPTION, out.getvalue())
def test_list_album_path(self): with capture_stdout() as stdout: self._run_list(album=True, fmt='$path') self.assertEqual(stdout.getvalue().strip(), u'xxx')
def test_list_item_format_artist(self): with capture_stdout() as stdout: self._run_list(fmt='$artist') self.assertIn(u'the artist', stdout.getvalue())
def test_list_album_format(self): with capture_stdout() as stdout: self._run_list(album=True, fmt='$genre') self.assertIn(u'the genre', stdout.getvalue()) self.assertNotIn(u'the album', stdout.getvalue())
def test_list_item_path(self): with capture_stdout() as stdout: self._run_list(fmt='$path') self.assertEqual(stdout.getvalue().strip(), u'xxx/yyy')
def test_show_user_config(self): with capture_stdout() as output: self.run_command('config') output = yaml.load(output.getvalue()) self.assertEqual(output['option'], 'value')
def test_list_uses_track_artist(self): with capture_stdout() as stdout: self._run_list() self.assertIn("the artist", stdout.getvalue()) self.assertNotIn("the album artist", stdout.getvalue())
def test_list_album_path(self): with capture_stdout() as stdout: self._run_list(album=True, fmt=u'$path') self.assertEqual(stdout.getvalue().strip(), u'xxx')
def test_list_album_outputs_something(self): with capture_stdout() as stdout: self._run_list(album=True) self.assertGreater(len(stdout.getvalue()), 0)
def test_bareasc_list_output(self): """Bare-ASCII version of list command - check output.""" with capture_stdout() as output: self.run_command('bareasc', 'with accents') self.assertIn('Antonin Dvorak', output.getvalue())
def test_list_item_path(self): with capture_stdout() as stdout: self._run_list(fmt=u'$path') self.assertEqual(stdout.getvalue().strip(), u'xxx/yyy')