Exemple #1
0
 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)
Exemple #3
0
    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())
Exemple #4
0
    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))
Exemple #5
0
    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))
Exemple #6
0
    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())
Exemple #7
0
    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())
Exemple #8
0
    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())
Exemple #9
0
    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())
Exemple #10
0
    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())
Exemple #11
0
    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(), '')
Exemple #12
0
    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(), '')
Exemple #13
0
 def test_list_album_omits_title(self):
     with capture_stdout() as stdout:
         self._run_list(album=True)
     self.assertNotIn(u'the title', stdout.getvalue())
Exemple #14
0
    def test_application_plugin_list(self):
        with capture_stdout() as out:
            self.runcli("version")

        self.assertIn("plugins: {0}".format(PLUGIN_NAME), out.getvalue())
Exemple #15
0
 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')
Exemple #18
0
 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())
Exemple #19
0
 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())
Exemple #20
0
 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())
Exemple #21
0
 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
Exemple #22
0
 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)
Exemple #23
0
 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')
Exemple #24
0
 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_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')
Exemple #26
0
 def test_list_outputs_item(self):
     with capture_stdout() as stdout:
         self._run_list()
     self.assertIn(u'the title', stdout.getvalue())
Exemple #27
0
    def test_application(self):
        with capture_stdout() as out:
            self.runcli()

        self.assertIn(PLUGIN_NAME, out.getvalue())
        self.assertIn(PLUGIN_SHORT_DESCRIPTION, out.getvalue())
Exemple #28
0
 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')
Exemple #29
0
 def test_list_item_format_artist(self):
     with capture_stdout() as stdout:
         self._run_list(fmt='$artist')
     self.assertIn(u'the artist', stdout.getvalue())
Exemple #30
0
 def test_list_outputs_item(self):
     with capture_stdout() as stdout:
         self._run_list()
     self.assertIn(u'the title', stdout.getvalue())
Exemple #31
0
 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())
Exemple #32
0
 def test_list_item_path(self):
     with capture_stdout() as stdout:
         self._run_list(fmt='$path')
     self.assertEqual(stdout.getvalue().strip(), u'xxx/yyy')
Exemple #33
0
 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())
Exemple #34
0
 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')
Exemple #35
0
 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())
Exemple #36
0
 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')
Exemple #37
0
 def test_list_album_outputs_something(self):
     with capture_stdout() as stdout:
         self._run_list(album=True)
     self.assertGreater(len(stdout.getvalue()), 0)
Exemple #38
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())
Exemple #39
0
 def test_list_album_omits_title(self):
     with capture_stdout() as stdout:
         self._run_list(album=True)
     self.assertNotIn(u'the title', stdout.getvalue())
Exemple #40
0
 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')
Exemple #41
0
 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
Exemple #42
0
 def test_list_album_outputs_something(self):
     with capture_stdout() as stdout:
         self._run_list(album=True)
     self.assertGreater(len(stdout.getvalue()), 0)