コード例 #1
0
    def testDisambiguateOnRelease(self):
        """Test that disambiguation gets placed in the same part of the path
        as the release name.

        See https://github.com/JoeLametta/whipper/issues/127"""
        prog = program.Program(config.Config())
        md = mbngs.DiscMetadata()
        md.artist = 'Guy Davis'
        md.sortName = 'Davis, Guy'
        md.title = 'Call Down the Thunder'
        md.release = '1996'
        md.catalogNumber = 'RHR CD 89'
        prog.metadata = md
        templates = {
            u'%A/%d - %y':
            u'Guy Davis/Call Down the Thunder - 1996 (RHR CD 89)',  # noqa: E501
            u'%A - %d - %y':
            u'Guy Davis - Call Down the Thunder - 1996 (RHR CD 89)',  # noqa: E501
            u'%A/%y/%d': u'Guy Davis/1996/Call Down the Thunder (RHR CD 89)',
            u'%y/%d/%A': u'1996/Call Down the Thunder (RHR CD 89)/Guy Davis',
            u'%d/%A/%y': u'Call Down the Thunder (RHR CD 89)/Guy Davis/1996',
        }

        for template, expected_path in templates.iteritems():
            path = prog.getPath(u'/tmp',
                                template,
                                'mbdiscid',
                                0,
                                disambiguate=True)  # noqa: E501
            self.assertEquals(path, u'/tmp/' + expected_path)
コード例 #2
0
    def testIssue66TemplateFilled(self):
        prog = program.Program(config.Config())
        md = mbngs.DiscMetadata()
        md.artist = md.sortName = 'Jeff Buckley'
        md.title = 'Grace'

        path = prog.getPath(u'/tmp', u'%A/%d', 'mbdiscid', md, 0)
        self.assertEquals(path, u'/tmp/Jeff Buckley/Grace')
コード例 #3
0
    def testStandardTemplateFilled(self):
        prog = program.Program(config.Config())
        md = mbngs.DiscMetadata()
        md.artist = md.sortName = 'Jeff Buckley'
        md.releaseTitle = 'Grace'

        path = prog.getPath('/tmp', DEFAULT_DISC_TEMPLATE, 'mbdiscid', md, 0)
        self.assertEqual(path, ('/tmp/unknown/Jeff Buckley - Grace/'
                                'Jeff Buckley - Grace'))
コード例 #4
0
    def testAddDisambiguationUnitTest(self):
        """Unit test for Program.addDisambiguation()."""
        prog = program.Program(config.Config())
        md = mbngs.DiscMetadata()

        # No relevant disambiguation metadata
        self.assertEquals(prog.addDisambiguation(u'Test', md), u'Test')

        # Only barcode available
        md.barcode = '033651008927'
        self.assertEquals(prog.addDisambiguation(u'Test', md),
                          u'Test (033651008927)')

        # Both catalog number and barcode available
        md.catalogNumber = 'RHR CD 89'
        self.assertEquals(prog.addDisambiguation(u'Test', md),
                          u'Test (RHR CD 89)')
コード例 #5
0
    def testDisambiguateOnReleaseOnlyOnce(self):
        """Test that disambiguation gets added only once."""
        prog = program.Program(config.Config())
        md = mbngs.DiscMetadata()
        md.artist = 'Guy Davis'
        md.sortName = 'Davis, Guy'
        md.title = 'Call Down the Thunder'
        md.release = '1996'
        md.catalogNumber = 'RHR CD 89'
        prog.metadata = md
        template = u'%A/%d - %y/%d/%d'

        path = prog.getPath(u'/tmp',
                            template,
                            'mbdiscid',
                            0,
                            disambiguate=True)  # noqa: E501
        self.assertEquals(
            path,
            u'/tmp/Guy Davis/Call Down the Thunder - 1996 (RHR CD 89)/Call Down the Thunder/Call Down the Thunder'
        )  # noqa: E501
コード例 #6
0
ファイル: program.py プロジェクト: vsq/whipper_freedb
    def craftMusicBrainzFromFreeDB(self, freedb_data):
        """Query CDDB using the given cddbdiscid to find the disc title.
        :param cddbdiscid: list of id, tracks, offsets, seconds.
        :type cddbdiscid:
        :returns:
        :rtype: str
        """
        disc = mbngs.DiscMetadata()

        except IOError as e:
        disc.release = str(freedb_data.get('year', '0000'))
        disc.title = disc.releaseTitle = freedb_data.get('title')

        tracks = []
        for track_title in freedb_data.get('tracks', []):
            track = mbngs.TrackMetadata()
            track.artist = track.sortName = disc.artist
            track.title = track_title
            tracks.append(track)
        disc.tracks = tracks

        return disc
コード例 #7
0
    def testDisambiguateOnNoReleaseTitle(self):
        """Test that disambiguation gets added even if there's no release
        title in the template."""
        prog = program.Program(config.Config())
        md = mbngs.DiscMetadata()
        md.artist = 'Guy Davis'
        md.sortName = 'Davis, Guy'
        md.title = 'Call Down the Thunder'
        md.release = '1996'
        md.catalogNumber = 'RHR CD 89'
        prog.metadata = md
        templates = {
            u'%A/%y': u'Guy Davis/1996 (RHR CD 89)',
            u'%A - %y': u'Guy Davis - 1996 (RHR CD 89)',
            u'%y/%A': u'1996/Guy Davis (RHR CD 89)',
        }

        for template, expected_path in templates.iteritems():
            path = prog.getPath(u'/tmp',
                                template,
                                'mbdiscid',
                                0,
                                disambiguate=True)  # noqa: E501
            self.assertEquals(path, u'/tmp/' + expected_path)