Exemplo n.º 1
0
    def test_update_library(self, track_for_mbid, album_for_mbid):
        album_for_mbid.return_value = \
            generate_album_info('album id', ['track id'])
        track_for_mbid.return_value = \
            generate_track_info(u'singleton track id',
                                {'title': u'singleton info'})

        album_item = Item(
            album=u'old title',
            mb_albumid=u'album id',
            mb_trackid=u'track id',
            path=''
        )
        album = self.lib.add_album([album_item])

        item = Item(
            title=u'old title',
            mb_trackid=u'singleton track id',
            path='',
        )
        self.lib.add(item)

        self.run_command('mbsync')

        item.load()
        self.assertEqual(item.title, u'singleton info')

        album_item.load()
        self.assertEqual(album_item.title, u'track info')

        album.load()
        self.assertEqual(album.album, u'album info')
Exemplo n.º 2
0
    def test_store_data(self, echonest_track, echonest_profile, item_write):
        profile = Mock(
            artist_name='artist',
            title='title',
            id='echonestid',
            audio_summary={
                'duration': 10,
                'energy': 0.5,
                'liveness': 0.5,
                'loudness': 0.5,
                'speechiness': 0.5,
                'danceability': 0.5,
                'tempo': 120,
                'key': 2,
                'mode': 0
            },
        )
        echonest_profile.return_value = [profile]
        echonest_track.return_value = Mock(song_id='echonestid')

        item = Item(
            mb_trackid='01234',
            artist='artist',
            title='title',
            length=10,
        )
        item.add(self.lib)
        self.assertNotIn('danceability', item)
        self.assertNotIn('initialkey', item)

        self.run_command('echonest')
        item.load()
        self.assertEqual(item['danceability'], '0.5')
        self.assertEqual(item['initial_key'], 'C#m')
Exemplo n.º 3
0
    def test_store_data(self, echonest_track, echonest_profile, item_write):
        profile = Mock(
            artist_name='artist',
            title='title',
            id='echonestid',
            audio_summary={
                'duration': 10,
                'energy': 0.5,
                'liveness': 0.5,
                'loudness': 0.5,
                'speechiness': 0.5,
                'danceability': 0.5,
                'tempo': 120,
                'key': 2,
                'mode': 0
            },
        )
        echonest_profile.return_value = [profile]
        echonest_track.return_value = Mock(song_id='echonestid')

        item = Item(
            mb_trackid='01234',
            artist='artist',
            title='title',
            length=10,
        )
        item.add(self.lib)
        self.assertNotIn('danceability', item)
        self.assertNotIn('initialkey', item)

        self.run_command('echonest')
        item.load()
        self.assertEqual(item['danceability'], '0.5')
        self.assertEqual(item['initial_key'], 'C#m')
Exemplo n.º 4
0
    def test_update_library(self, track_for_mbid, album_for_mbid):
        album_for_mbid.return_value = \
            generate_album_info('album id', ['track id'])
        track_for_mbid.return_value = \
            generate_track_info('singleton track id',
                                {'title': 'singleton info'})

        album_item = Item(album='old title',
                          mb_albumid='album id',
                          mb_trackid='track id',
                          path='')
        album = self.lib.add_album([album_item])

        item = Item(
            title='old title',
            mb_trackid='singleton track id',
            path='',
        )
        self.lib.add(item)

        self.run_command('mbsync')

        item.load()
        self.assertEqual(item.title, 'singleton info')

        album_item.load()
        self.assertEqual(album_item.title, 'track info')

        album.load()
        self.assertEqual(album.album, 'album info')
Exemplo n.º 5
0
    def test_normal_case(self):
        item = Item(path='/file', mb_workid='1', parentwork_workid_current='1')
        item.add(self.lib)

        self.run_command('parentwork')

        item.load()
        self.assertEqual(item['mb_parentworkid'], '3')
Exemplo n.º 6
0
    def test_do_not_overwrite(self):
        item = Item(path='/file', initial_key='F')
        item.add(self.lib)

        self.command_output.return_value = 'dbm'
        self.run_command('keyfinder')

        item.load()
        self.assertEqual(item['initial_key'], 'F')
Exemplo n.º 7
0
    def test_do_not_overwrite(self):
        item = Item(path='/file', initial_key='F')
        item.add(self.lib)

        self.command_output.return_value = 'dbm'
        self.run_command('keyfinder')

        item.load()
        self.assertEqual(item['initial_key'], 'F')
Exemplo n.º 8
0
    def test_do_not_overwrite(self):
        item = Item(path="/file", initial_key="F")
        item.add(self.lib)

        self.command_output.return_value = "dbm"
        self.run_command("keyfinder")

        item.load()
        self.assertEqual(item["initial_key"], "F")
Exemplo n.º 9
0
    def test_no_key(self, command_output):
        item = Item(path='/file')
        item.add(self.lib)

        command_output.return_value = util.CommandOutput(b"", b"")
        self.run_command('keyfinder')

        item.load()
        self.assertEqual(item['initial_key'], None)
Exemplo n.º 10
0
    def test_do_not_overwrite(self, command_output):
        item = Item(path='/file', initial_key='F')
        item.add(self.lib)

        command_output.return_value = util.CommandOutput(b"dbm", b"")
        self.run_command('keyfinder')

        item.load()
        self.assertEqual(item['initial_key'], 'F')
Exemplo n.º 11
0
    def test_add_key(self):
        item = Item(path='/file')
        item.add(self.lib)

        self.command_output.return_value = 'dbm'
        self.run_command('keyfinder')

        item.load()
        self.assertEqual(item['initial_key'], 'C#m')
        self.command_output.assert_called_with(['KeyFinder', '-f', item.path])
Exemplo n.º 12
0
    def test_normal_case(self):
        item = Item(path='/file',
                    mb_workid=u'e27bda6e-531e-36d3-9cd7-b8ebc18e8c53')
        item.add(self.lib)

        self.run_command('parentwork')

        item.load()
        self.assertEqual(item['mb_parentworkid'],
                         u'32c8943f-1b27-3a23-8660-4567f4847c94')
Exemplo n.º 13
0
    def test_add_key(self):
        item = Item(path="/file")
        item.add(self.lib)

        self.command_output.return_value = "dbm"
        self.run_command("keyfinder")

        item.load()
        self.assertEqual(item["initial_key"], "C#m")
        self.command_output.assert_called_with(["KeyFinder", "-f", item.path])
Exemplo n.º 14
0
    def test_add_key(self, command_output):
        item = Item(path='/file')
        item.add(self.lib)

        command_output.return_value = util.CommandOutput(b"dbm", b"")
        self.run_command('keyfinder')

        item.load()
        self.assertEqual(item['initial_key'], 'C#m')
        command_output.assert_called_with(
            ['KeyFinder', '-f', util.syspath(item.path)])
Exemplo n.º 15
0
    def test_force_overwrite(self):
        self.config['keyfinder']['overwrite'] = True

        item = Item(path='/file', initial_key='F')
        item.add(self.lib)

        self.command_output.return_value = 'C#m'
        self.run_command('keyfinder')

        item.load()
        self.assertEqual(item['initial_key'], 'C#m')
Exemplo n.º 16
0
    def test_add_key(self):
        item = Item(path='/file')
        item.add(self.lib)

        self.command_output.return_value = 'dbm'
        self.run_command('keyfinder')

        item.load()
        self.assertEqual(item['initial_key'], 'C#m')
        self.command_output.assert_called_with(
            ['KeyFinder', '-f', item.path])
Exemplo n.º 17
0
    def test_force_overwrite(self):
        self.config['keyfinder']['overwrite'] = True

        item = Item(path='/file', initial_key='F')
        item.add(self.lib)

        self.command_output.return_value = 'C#m'
        self.run_command('keyfinder')

        item.load()
        self.assertEqual(item['initial_key'], 'C#m')
Exemplo n.º 18
0
    def test_force_overwrite(self):
        self.config["keyfinder"]["overwrite"] = True

        item = Item(path="/file", initial_key="F")
        item.add(self.lib)

        self.command_output.return_value = "C#m"
        self.run_command("keyfinder")

        item.load()
        self.assertEqual(item["initial_key"], "C#m")
Exemplo n.º 19
0
    def test_force(self):
        self.config['parentwork']['force'] = True
        item = Item(path='/file',
                    mb_workid=u'e27bda6e-531e-36d3-9cd7-b8ebc18e8c53',
                    mb_parentworkid=u'XXX')
        item.add(self.lib)

        self.run_command('parentwork')

        item.load()
        self.assertEqual(item['mb_parentworkid'],
                         u'32c8943f-1b27-3a23-8660-4567f4847c94')
Exemplo n.º 20
0
    def test_no_force(self):
        self.config['parentwork']['force'] = True
        item = Item(path='/file',
                    mb_workid=u'e27bda6e-531e-36d3-9cd7-\
                    b8ebc18e8c53',
                    mb_parentworkid=u'XXX')
        item.add(self.lib)

        self.run_command('parentwork')

        item.load()
        self.assertEqual(item['mb_parentworkid'], u'XXX')
Exemplo n.º 21
0
    def test_no_force(self):
        self.config['parentwork']['force'] = False
        item = Item(path='/file',
                    mb_workid='1',
                    mb_parentworkid=u'XXX',
                    parentwork_workid_current='1',
                    parentwork='parentwork')
        item.add(self.lib)

        self.run_command('parentwork')

        item.load()
        self.assertEqual(item['mb_parentworkid'], u'XXX')
Exemplo n.º 22
0
    def test_no_force_real(self):
        self.config['parentwork']['force'] = False
        item = Item(path='/file',
                    mb_workid='e27bda6e-531e-36d3-9cd7-\
                    b8ebc18e8c53',
                    mb_parentworkid='XXX',
                    parentwork_workid_current='e27bda6e-531e-36d3-9cd7-\
                    b8ebc18e8c53',
                    parentwork='whatever')
        item.add(self.lib)

        self.run_command('parentwork')

        item.load()
        self.assertEqual(item['mb_parentworkid'], 'XXX')
Exemplo n.º 23
0
    def test_update_library(self, track_for_mbid, album_for_mbid):
        album_for_mbid.return_value = generate_album_info("album id", ["track id"])
        track_for_mbid.return_value = generate_track_info(u"singleton track id", {"title": u"singleton info"})

        album_item = Item(album=u"old title", mb_albumid=u"album id", mb_trackid=u"track id", path="")
        album = self.lib.add_album([album_item])

        item = Item(title=u"old title", mb_trackid=u"singleton track id", path="")
        self.lib.add(item)

        self.run_command("mbsync")

        item.load()
        self.assertEqual(item.title, u"singleton info")

        album_item.load()
        self.assertEqual(album_item.title, u"track info")

        album.load()
        self.assertEqual(album.album, u"album info")
Exemplo n.º 24
0
    def test_update_library(self, track_for_id, album_for_id):
        album_for_id.return_value = \
            generate_album_info(
                'album id',
                [('track id', {'release_track_id': u'release track id'})]
            )
        track_for_id.return_value = \
            generate_track_info(u'singleton track id',
                                {'title': u'singleton info'})

        album_item = Item(
            album=u'old title',
            mb_albumid=u'81ae60d4-5b75-38df-903a-db2cfa51c2c6',
            mb_trackid=u'old track id',
            mb_releasetrackid=u'release track id',
            path=''
        )
        album = self.lib.add_album([album_item])

        item = Item(
            title=u'old title',
            mb_trackid=u'b8c2cf90-83f9-3b5f-8ccd-31fb866fcf37',
            path='',
        )
        self.lib.add(item)

        with capture_log() as logs:
            self.run_command('mbsync')

        self.assertIn('Sending event: albuminfo_received', logs)
        self.assertIn('Sending event: trackinfo_received', logs)

        item.load()
        self.assertEqual(item.title, u'singleton info')

        album_item.load()
        self.assertEqual(album_item.title, u'track info')
        self.assertEqual(album_item.mb_trackid, u'track id')

        album.load()
        self.assertEqual(album.album, u'album info')
Exemplo n.º 25
0
    def test_update_library(self, track_for_id, album_for_id):
        album_for_id.return_value = \
            generate_album_info(
                'album id',
                [('track id', {'release_track_id': u'release track id'})]
            )
        track_for_id.return_value = \
            generate_track_info(u'singleton track id',
                                {'title': u'singleton info'})

        album_item = Item(album=u'old title',
                          mb_albumid=u'81ae60d4-5b75-38df-903a-db2cfa51c2c6',
                          mb_trackid=u'old track id',
                          mb_releasetrackid=u'release track id',
                          path='')
        album = self.lib.add_album([album_item])

        item = Item(
            title=u'old title',
            mb_trackid=u'b8c2cf90-83f9-3b5f-8ccd-31fb866fcf37',
            path='',
        )
        self.lib.add(item)

        with capture_log() as logs:
            self.run_command('mbsync')

        self.assertIn('Sending event: albuminfo_received', logs)
        self.assertIn('Sending event: trackinfo_received', logs)

        item.load()
        self.assertEqual(item.title, u'singleton info')

        album_item.load()
        self.assertEqual(album_item.title, u'track info')
        self.assertEqual(album_item.mb_trackid, u'track id')

        album.load()
        self.assertEqual(album.album, u'album info')