Ejemplo n.º 1
0
    def test2MeterSessies10(self):
        # various artists, multiple artists per track
        filename = 'whipper.release.a76714e0-32b1-4ed4-b28e-f86d99642193.json'
        path = os.path.join(os.path.dirname(__file__), filename)
        handle = open(path, "rb")
        response = json.loads(handle.read())
        handle.close()
        discid = "f7XO36a7n1LCCskkCiulReWbwZA-"

        metadata = mbngs._getMetadata({}, response['release'], discid)

        self.assertEquals(metadata.artist, u'Various Artists')
        self.assertEquals(metadata.release, u'2001-10-15')
        self.assertEquals(metadata.mbidArtist,
                          u'89ad4ac3-39f7-470e-963a-56509c546377')

        self.assertEquals(len(metadata.tracks), 18)

        track16 = metadata.tracks[15]

        self.assertEquals(track16.artist, 'Tom Jones & Stereophonics')
        self.assertEquals(
            track16.mbidArtist, u'57c6f649-6cde-48a7-8114-2a200247601a'
            ';0bfba3d3-6a04-4779-bb0a-df07df5b0558')
        self.assertEquals(track16.sortName, u'Jones, Tom & Stereophonics')
Ejemplo n.º 2
0
    def testMalaInCuba(self):
        # single artist disc, but with multiple artists tracks
        # see https://github.com/thomasvs/morituri/issues/19
        filename = 'whipper.release.61c6fd9b-18f8-4a45-963a-ba3c5d990cae.json'
        path = os.path.join(os.path.dirname(__file__), filename)
        handle = open(path, "rb")
        response = json.loads(handle.read())
        handle.close()
        discid = "u0aKVpO.59JBy6eQRX2vYcoqQZ0-"

        metadata = mbngs._getMetadata({}, response['release'], discid)

        self.assertEquals(metadata.artist, u'Mala')
        self.assertEquals(metadata.sortName, u'Mala')
        self.assertEquals(metadata.release, u'2012-09-17')
        self.assertEquals(metadata.mbidArtist,
                          u'09f221eb-c97e-4da5-ac22-d7ab7c555bbb')

        self.assertEquals(len(metadata.tracks), 14)

        track6 = metadata.tracks[5]

        self.assertEquals(track6.artist, u'Mala feat. Dreiser & Sexto Sentido')
        self.assertEquals(track6.sortName,
                          u'Mala feat. Dreiser & Sexto Sentido')
        self.assertEquals(
            track6.mbidArtist, u'09f221eb-c97e-4da5-ac22-d7ab7c555bbb'
            ';ec07a209-55ff-4084-bc41-9d4d1764e075'
            ';f626b92e-07b1-4a19-ad13-c09d690db66c')
Ejemplo n.º 3
0
    def testBalladOfTheBrokenSeas(self):
        # various artists disc
        filename = 'whipper.release.e32ae79a-336e-4d33-945c-8c5e8206dbd3.json'
        path = os.path.join(os.path.dirname(__file__), filename)
        handle = open(path, "rb")
        response = json.loads(handle.read())
        handle.close()
        discid = "xAq8L4ELMW14.6wI6tt7QAcxiDI-"

        metadata = mbngs._getMetadata({}, response['release'], discid)

        self.assertEquals(metadata.artist, u'Isobel Campbell & Mark Lanegan')
        self.assertEquals(metadata.sortName,
                          u'Campbell, Isobel & Lanegan, Mark')
        self.assertEquals(metadata.release, u'2006-01-30')
        self.assertEquals(
            metadata.mbidArtist, u'd51f3a15-12a2-41a0-acfa-33b5eae71164;'
            'a9126556-f555-4920-9617-6e013f8228a7')

        self.assertEquals(len(metadata.tracks), 12)

        track12 = metadata.tracks[11]

        self.assertEquals(track12.artist, u'Isobel Campbell & Mark Lanegan')
        self.assertEquals(track12.sortName, u'Campbell, Isobel'
                          ' & Lanegan, Mark')
        self.assertEquals(
            track12.mbidArtist, u'd51f3a15-12a2-41a0-acfa-33b5eae71164;'
            'a9126556-f555-4920-9617-6e013f8228a7')
Ejemplo n.º 4
0
    def test2MeterSessies10(self):
        # various artists, multiple artists per track
        path = os.path.join(os.path.dirname(__file__),
            'whipper.release.a76714e0-32b1-4ed4-b28e-f86d99642193.json')
        handle = open(path, "rb")
        response = json.loads(handle.read())
        handle.close()
        discid = "f7XO36a7n1LCCskkCiulReWbwZA-"

        metadata = mbngs._getMetadata({}, response['release'], discid)

        self.assertEquals(metadata.artist, u'Various Artists')
        self.assertEquals(metadata.release, u'2001-10-15')
        self.assertEquals(metadata.mbidArtist,
            u'89ad4ac3-39f7-470e-963a-56509c546377')

        self.assertEquals(len(metadata.tracks), 18)

        track16 = metadata.tracks[15]

        self.assertEquals(track16.artist, 'Tom Jones & Stereophonics')
        self.assertEquals(track16.mbidArtist,
            u'57c6f649-6cde-48a7-8114-2a200247601a'
            ';0bfba3d3-6a04-4779-bb0a-df07df5b0558'
        )
        self.assertEquals(track16.sortName,
            u'Jones, Tom & Stereophonics')
Ejemplo n.º 5
0
    def testBalladOfTheBrokenSeas(self):
        # various artists disc
        path = os.path.join(os.path.dirname(__file__),
            'whipper.release.e32ae79a-336e-4d33-945c-8c5e8206dbd3.json')
        handle = open(path, "rb")
        response = json.loads(handle.read())
        handle.close()
        discid = "xAq8L4ELMW14.6wI6tt7QAcxiDI-"

        metadata = mbngs._getMetadata({}, response['release'], discid)

        self.assertEquals(metadata.artist, u'Isobel Campbell & Mark Lanegan')
        self.assertEquals(metadata.sortName,
            u'Campbell, Isobel & Lanegan, Mark')
        self.assertEquals(metadata.release, u'2006-01-30')
        self.assertEquals(metadata.mbidArtist,
            u'd51f3a15-12a2-41a0-acfa-33b5eae71164;'
            'a9126556-f555-4920-9617-6e013f8228a7')

        self.assertEquals(len(metadata.tracks), 12)

        track12 = metadata.tracks[11]

        self.assertEquals(track12.artist, u'Isobel Campbell & Mark Lanegan')
        self.assertEquals(track12.sortName,
            u'Campbell, Isobel'
            ' & Lanegan, Mark'
            )
        self.assertEquals(track12.mbidArtist,
            u'd51f3a15-12a2-41a0-acfa-33b5eae71164;'
            'a9126556-f555-4920-9617-6e013f8228a7')
Ejemplo n.º 6
0
    def testMalaInCuba(self):
        # single artist disc, but with multiple artists tracks
        # see https://github.com/thomasvs/morituri/issues/19
        path = os.path.join(os.path.dirname(__file__),
            'whipper.release.61c6fd9b-18f8-4a45-963a-ba3c5d990cae.json')
        handle = open(path, "rb")
        response = json.loads(handle.read())
        handle.close()
        discid = "u0aKVpO.59JBy6eQRX2vYcoqQZ0-"

        metadata = mbngs._getMetadata({}, response['release'], discid)

        self.assertEquals(metadata.artist, u'Mala')
        self.assertEquals(metadata.sortName, u'Mala')
        self.assertEquals(metadata.release, u'2012-09-17')
        self.assertEquals(metadata.mbidArtist,
            u'09f221eb-c97e-4da5-ac22-d7ab7c555bbb')

        self.assertEquals(len(metadata.tracks), 14)

        track6 = metadata.tracks[5]

        self.assertEquals(track6.artist, u'Mala feat. Dreiser & Sexto Sentido')
        self.assertEquals(track6.sortName,
            u'Mala feat. Dreiser & Sexto Sentido')
        self.assertEquals(track6.mbidArtist,
            u'09f221eb-c97e-4da5-ac22-d7ab7c555bbb'
            ';ec07a209-55ff-4084-bc41-9d4d1764e075'
            ';f626b92e-07b1-4a19-ad13-c09d690db66c'
        )
Ejemplo n.º 7
0
    def testJeffEverybodySingle(self):
        path = os.path.join(os.path.dirname(__file__),
            'whipper.release.3451f29c-9bb8-4cc5-bfcc-bd50104b94f8.json')
        handle = open(path, "rb")
        response = json.loads(handle.read())
        handle.close()
        discid = "wbjbST2jUHRZaB1inCyxxsL7Eqc-"

        metadata = mbngs._getMetadata({}, response['release'], discid)

        self.failIf(metadata.release)
Ejemplo n.º 8
0
    def testJeffEverybodySingle(self):
        filename = 'whipper.release.3451f29c-9bb8-4cc5-bfcc-bd50104b94f8.json'
        path = os.path.join(os.path.dirname(__file__), filename)
        handle = open(path, "rb")
        response = json.loads(handle.read())
        handle.close()
        discid = "wbjbST2jUHRZaB1inCyxxsL7Eqc-"

        metadata = mbngs._getMetadata({}, response['release'], discid)

        self.failIf(metadata.release)
Ejemplo n.º 9
0
    def testMissingReleaseGroupType(self):
        """Check that whipper doesn't break if there's no type."""
        # Using: Gustafsson, Österberg & Cowle - What's Up? 8 (disc 4)
        # https://musicbrainz.org/release/d8e6153a-2c47-4804-9d73-0aac1081c3b1
        filename = 'whipper.release.d8e6153a-2c47-4804-9d73-0aac1081c3b1.json'
        path = os.path.join(os.path.dirname(__file__), filename)
        handle = open(path, "rb")
        response = json.loads(handle.read().decode('utf-8'))
        handle.close()
        discid = "xu338_M8WukSRi0J.KTlDoflB8Y-"  # disc 4

        metadata = mbngs._getMetadata(response['release'], discid)
        self.assertEqual(metadata.releaseType, None)
Ejemplo n.º 10
0
    def testMissingReleaseDate(self):
        # Using: The KLF - Space & Chill Out
        # https://musicbrainz.org/release/c56ff16e-1d81-47de-926f-ba22891bd2bd
        filename = 'whipper.release.c56ff16e-1d81-47de-926f-ba22891bd2bd.json'
        path = os.path.join(os.path.dirname(__file__), filename)
        handle = open(path, "rb")
        response = json.loads(handle.read().decode('utf-8'))
        handle.close()
        discid = "b.yqPuCBdsV5hrzDvYrw52iK_jE-"

        metadata = mbngs._getMetadata(response['release'], discid)

        self.assertFalse(metadata.release)
Ejemplo n.º 11
0
    def _mock_getReleaseMetadata(release_id):
        """
        Mock function for whipper.common.mbngs.getReleaseMetadata.

        :param release_id: MusicBrainz Release ID
        :type release_id: str
        :returns: a DiscMetadata object based on the given release_id
        :rtype: `DiscMetadata`
        """
        filename = 'whipper.release.{}.json'.format(release_id)
        path = os.path.join(os.path.dirname(__file__), filename)
        with open(path, "rb") as handle:
            response = json.loads(handle.read().decode('utf-8'))
        return _getMetadata(response['release'])
Ejemplo n.º 12
0
    def testTrackTitle(self):
        """
        Check that the track title metadata is taken from MusicBrainz's track
        title (which may differ from the recording title, as in this case)
        see https://github.com/whipper-team/whipper/issues/192
        """
        # Using: The KLF - Space & Chill Out
        # https://musicbrainz.org/release/c56ff16e-1d81-47de-926f-ba22891bd2bd
        filename = 'whipper.release.c56ff16e-1d81-47de-926f-ba22891bd2bd.json'
        path = os.path.join(os.path.dirname(__file__), filename)
        with open(path, "rb") as handle:
            response = json.loads(handle.read().decode('utf-8'))
        discid = "b.yqPuCBdsV5hrzDvYrw52iK_jE-"

        metadata = mbngs._getMetadata(response['release'], discid)
        track1 = metadata.tracks[0]
        self.assertEqual(track1.title, 'Brownsville Turnaround')
Ejemplo n.º 13
0
    def testNenaAndKimWildSingle(self):
        """
        Check the received metadata for artists that differ between
        named on release and named in recording.
        """
        filename = 'whipper.release.f484a9fc-db21-4106-9408-bcd105c90047.json'
        path = os.path.join(os.path.dirname(__file__), filename)
        handle = open(path, "rb")
        response = json.loads(handle.read().decode('utf-8'))
        handle.close()
        discid = "X2c2IQ5vUy5x6Jh7Xi_DGHtA1X8-"

        metadata = mbngs._getMetadata(response['release'], discid)
        self.assertEqual(metadata.artist, 'Nena & Kim Wilde')
        self.assertEqual(metadata.release, '2003-05-19')
        self.assertEqual(metadata.mbidArtist, [
            '38bfaa7f-ee98-48cb-acd0-946d7aeecd76',
            '4b462375-c508-432a-8c88-ceeec38b16ae',
        ])

        self.assertEqual(len(metadata.tracks), 4)

        track1 = metadata.tracks[0]

        self.assertEqual(track1.artist, 'Nena & Kim Wilde')
        self.assertEqual(track1.sortName, 'Nena & Wilde, Kim')
        self.assertEqual(track1.mbidArtist, [
            '38bfaa7f-ee98-48cb-acd0-946d7aeecd76',
            '4b462375-c508-432a-8c88-ceeec38b16ae',
        ])
        self.assertEqual(track1.mbid, '1cc96e78-28ed-3820-b0b6-614c35b121ac')
        self.assertEqual(track1.mbidRecording,
                         'fde5622c-ce23-4ebb-975d-51d4a926f901')

        track2 = metadata.tracks[1]

        self.assertEqual(track2.artist, 'Nena & Kim Wilde')
        self.assertEqual(track2.sortName, 'Nena & Wilde, Kim')
        self.assertEqual(track2.mbidArtist, [
            '38bfaa7f-ee98-48cb-acd0-946d7aeecd76',
            '4b462375-c508-432a-8c88-ceeec38b16ae',
        ])
        self.assertEqual(track2.mbid, 'f16db4bf-9a34-3d5a-a975-c9375ab7a2ca')
        self.assertEqual(track2.mbidRecording,
                         '5f19758e-7421-4c71-a599-9a9575d8e1b0')
Ejemplo n.º 14
0
    def testAllAvailableMetadata(self):
        """Check that all possible metadata gets assigned."""
        # Using: David Rovics - The Other Side
        # https://musicbrainz.org/release/6109ceed-7e21-490b-b5ad-3a66b4e4cfbb
        filename = 'whipper.release.6109ceed-7e21-490b-b5ad-3a66b4e4cfbb.json'
        path = os.path.join(os.path.dirname(__file__), filename)
        handle = open(path, "rb")
        response = json.loads(handle.read())
        handle.close()
        discid = "cHW1Uutl_kyWNaLJsLmTGTe4rnE-"

        metadata = mbngs._getMetadata(response['release'], discid)
        self.assertEqual(metadata.artist, u'David Rovics')
        self.assertEqual(metadata.sortName, u'Rovics, David')
        self.assertFalse(metadata.various)
        self.assertIsInstance(metadata.tracks, list)
        self.assertEqual(metadata.release, u'2015')
        self.assertEqual(metadata.releaseTitle, u'The Other Side')
        self.assertEqual(metadata.releaseType, u'Album')
        self.assertEqual(metadata.mbid,
                         u'6109ceed-7e21-490b-b5ad-3a66b4e4cfbb')
        self.assertEqual(metadata.mbidReleaseGroup,
                         u'99850b41-a06e-4fb8-992c-75c191a77803')
        self.assertEqual(metadata.mbidArtist,
                         [u'4d56eb9f-13b3-4f05-9db7-50195378d49f'])
        self.assertEqual(
            metadata.url, u'https://musicbrainz.org/release'
            '/6109ceed-7e21-490b-b5ad-3a66b4e4cfbb')
        self.assertEqual(metadata.catalogNumber, u'[none]')
        self.assertEqual(metadata.barcode, u'700261430249')

        self.assertEqual(len(metadata.tracks), 16)

        track1 = metadata.tracks[0]
        self.assertEqual(track1.artist, u'David Rovics')
        self.assertEqual(track1.title, u'Waiting for the Hurricane')
        self.assertEqual(track1.duration, 176320)
        self.assertEqual(track1.mbid, u'4116eea3-b9c2-452a-8d63-92f1e585b225')
        self.assertEqual(track1.sortName, u'Rovics, David')
        self.assertEqual(track1.mbidArtist,
                         [u'4d56eb9f-13b3-4f05-9db7-50195378d49f'])
        self.assertEqual(track1.mbidRecording,
                         u'b191794d-b7c6-4d6f-971e-0a543959b5ad')
        self.assertEqual(track1.mbidWorks,
                         [u'90d5be68-0b29-45a3-ba01-c27ad78e3625'])
Ejemplo n.º 15
0
    def testComposersAndPerformers(self):
        """
        Test whether composers and performers are extracted properly.

        See: https://github.com/whipper-team/whipper/issues/191
        """
        # Using: Mama Said - Lenny Kravitz
        # https://musicbrainz.org/release/410f99f8-a876-3416-bd8e-42233a00a477
        filename = 'whipper.release.410f99f8-a876-3416-bd8e-42233a00a477.json'
        path = os.path.join(os.path.dirname(__file__), filename)
        with open(path, "rb") as handle:
            response = json.loads(handle.read().decode('utf-8'))

        metadata = mbngs._getMetadata(response['release'],
                                      discid='bIOeHwHT0aZJiENIYjAmoNxCPuA-')
        track1 = metadata.tracks[0]
        self.assertEqual(track1.composers, ['Hal Fredericks', 'Michael Kamen'])
        self.assertEqual(track1.performers, ['Lenny Kravitz', 'Slash'])
Ejemplo n.º 16
0
    def testNorthernGateway(self):
        """
        check the received metadata for artists tagged with [unknown]
        and artists tagged with an alias in MusicBrainz

        see https://github.com/JoeLametta/whipper/issues/155
        """
        filename = 'whipper.release.38b05c7d-65fe-4dc0-9c10-33a391b86703.json'
        path = os.path.join(os.path.dirname(__file__), filename)
        handle = open(path, "rb")
        response = json.loads(handle.read())
        handle.close()
        discid = "rzGHHqfPWIq1GsOLhhlBcZuqo.I-"

        metadata = mbngs._getMetadata({}, response['release'], discid)
        self.assertEquals(metadata.artist, u'Various Artists')
        self.assertEquals(metadata.release, u'2010')
        self.assertEquals(metadata.mbidArtist,
                          u'89ad4ac3-39f7-470e-963a-56509c546377')

        self.assertEquals(len(metadata.tracks), 10)

        track2 = metadata.tracks[1]

        self.assertEquals(track2.artist, u'Twisted Reaction feat. Danielle')
        self.assertEquals(track2.sortName,
                          u'Twisted Reaction feat. [unknown]')
        self.assertEquals(track2.mbidArtist,
                          u'4f69f624-73ea-4a16-b822-bd2ca58032bf'
                          ';125ec42a-7229-4250-afc5-e057484327fe'
                          )

        track4 = metadata.tracks[3]

        self.assertEquals(track4.artist, u'BioGenesis')
        self.assertEquals(track4.sortName,
                          u'Bio Genesis')
        self.assertEquals(track4.mbidArtist,
                          u'dd61b86c-c015-43e1-9a28-58fceb0975c8'
                          )
Ejemplo n.º 17
0
    def testUnknownArtist(self):
        """
        Check the received metadata for artists tagged with [unknown]
        and artists tagged with an alias in MusicBrainz.

        See https://github.com/whipper-team/whipper/issues/155
        """
        # Using: CunninLynguists - Sloppy Seconds, Volume 1
        # https://musicbrainz.org/release/8478d4da-0cda-4e46-ae8c-1eeacfa5cf37
        filename = 'whipper.release.8478d4da-0cda-4e46-ae8c-1eeacfa5cf37.json'
        path = os.path.join(os.path.dirname(__file__), filename)
        handle = open(path, "rb")
        response = json.loads(handle.read().decode('utf-8'))
        handle.close()
        discid = "RhrwgVb0hZNkabQCw1dZIhdbMFg-"

        metadata = mbngs._getMetadata(response['release'], discid)
        self.assertEqual(metadata.artist, 'CunninLynguists')
        self.assertEqual(metadata.release, '2003')
        self.assertEqual(metadata.mbidArtist,
                         ['69c4cc43-8163-41c5-ac81-30946d27bb69'])

        self.assertEqual(len(metadata.tracks), 30)

        track8 = metadata.tracks[7]

        self.assertEqual(track8.artist, '???')
        self.assertEqual(track8.sortName, '[unknown]')
        self.assertEqual(track8.mbidArtist,
                         ['125ec42a-7229-4250-afc5-e057484327fe'])

        track9 = metadata.tracks[8]

        self.assertEqual(track9.artist, 'CunninLynguists feat. Tonedeff')
        self.assertEqual(track9.sortName, 'CunninLynguists feat. Tonedeff')
        self.assertEqual(track9.mbidArtist, [
            '69c4cc43-8163-41c5-ac81-30946d27bb69',
            'b3869d83-9fb5-4eac-b5ca-2d155fcbee12'
        ])
Ejemplo n.º 18
0
    def testNenaAndKimWildSingle(self):
        """Check MBz metadata for artists with different names.

        An artist can have different names on MusicBrainz like:
        *artist in MusicBrainz*, *artist as credited*.

        .. seealso:: https://github.com/JoeLametta/whipper/issues/156
        """
        filename = 'whipper.release.f484a9fc-db21-4106-9408-bcd105c90047.json'
        path = os.path.join(os.path.dirname(__file__), filename)
        handle = open(path, "rb")
        response = json.loads(handle.read())
        handle.close()
        discid = "X2c2IQ5vUy5x6Jh7Xi_DGHtA1X8-"

        metadata = mbngs._getMetadata({}, response['release'], discid)
        self.assertEquals(metadata.artist, u'Nena & Kim Wilde')
        self.assertEquals(metadata.release, u'2003-05-19')
        self.assertEquals(metadata.mbidArtist,
                          u'38bfaa7f-ee98-48cb-acd0-946d7aeecd76'
                          ';4b462375-c508-432a-8c88-ceeec38b16ae')

        self.assertEquals(len(metadata.tracks), 4)

        track1 = metadata.tracks[0]

        self.assertEquals(track1.artist, u'Nena & Kim Wilde')
        self.assertEquals(track1.sortName, u'Nena & Wilde, Kim')
        self.assertEquals(track1.mbidArtist,
                          u'38bfaa7f-ee98-48cb-acd0-946d7aeecd76'
                          ';4b462375-c508-432a-8c88-ceeec38b16ae')

        track2 = metadata.tracks[1]

        self.assertEquals(track2.artist, u'Nena & Kim Wilde')
        self.assertEquals(track2.sortName, u'Nena & Wilde, Kim')
        self.assertEquals(track2.mbidArtist,
                          u'38bfaa7f-ee98-48cb-acd0-946d7aeecd76'
                          ';4b462375-c508-432a-8c88-ceeec38b16ae')
Ejemplo n.º 19
0
    def testNorthernGateway(self):
        """
        check the received metadata for artists tagged with [unknown]
        and artists tagged with an alias in MusicBrainz

        see https://github.com/whipper-team/whipper/issues/155
        """
        filename = 'whipper.release.38b05c7d-65fe-4dc0-9c10-33a391b86703.json'
        path = os.path.join(os.path.dirname(__file__), filename)
        handle = open(path, "rb")
        response = json.loads(handle.read())
        handle.close()
        discid = "rzGHHqfPWIq1GsOLhhlBcZuqo.I-"

        metadata = mbngs._getMetadata({}, response['release'], discid)
        self.assertEqual(metadata.artist, u'Various Artists')
        self.assertEqual(metadata.release, u'2010')
        self.assertEqual(metadata.mbidArtist,
                         u'89ad4ac3-39f7-470e-963a-56509c546377')

        self.assertEqual(len(metadata.tracks), 10)

        track2 = metadata.tracks[1]

        self.assertEqual(track2.artist, u'Twisted Reaction feat. Danielle')
        self.assertEqual(track2.sortName,
                         u'Twisted Reaction feat. [unknown]')
        self.assertEqual(track2.mbidArtist,
                         u'4f69f624-73ea-4a16-b822-bd2ca58032bf'
                         ';125ec42a-7229-4250-afc5-e057484327fe')

        track4 = metadata.tracks[3]

        self.assertEqual(track4.artist, u'BioGenesis')
        self.assertEqual(track4.sortName,
                         u'Bio Genesis')
        self.assertEqual(track4.mbidArtist,
                         u'dd61b86c-c015-43e1-9a28-58fceb0975c8')
Ejemplo n.º 20
0
    def testNenaAndKimWildSingle(self):
        """
        check the received metadata for artists that differ between
        named on release and named in recording
        """
        filename = 'whipper.release.f484a9fc-db21-4106-9408-bcd105c90047.json'
        path = os.path.join(os.path.dirname(__file__), filename)
        handle = open(path, "rb")
        response = json.loads(handle.read())
        handle.close()
        discid = "X2c2IQ5vUy5x6Jh7Xi_DGHtA1X8-"

        metadata = mbngs._getMetadata({}, response['release'], discid)
        self.assertEqual(metadata.artist, u'Nena & Kim Wilde')
        self.assertEqual(metadata.release, u'2003-05-19')
        self.assertEqual(metadata.mbidArtist,
                         u'38bfaa7f-ee98-48cb-acd0-946d7aeecd76'
                         ';4b462375-c508-432a-8c88-ceeec38b16ae')

        self.assertEqual(len(metadata.tracks), 4)

        track1 = metadata.tracks[0]

        self.assertEqual(track1.artist, u'Nena & Kim Wilde')
        self.assertEqual(track1.sortName, u'Nena & Wilde, Kim')
        self.assertEqual(track1.mbidArtist,
                         u'38bfaa7f-ee98-48cb-acd0-946d7aeecd76'
                         ';4b462375-c508-432a-8c88-ceeec38b16ae')

        track2 = metadata.tracks[1]

        self.assertEqual(track2.artist, u'Nena & Kim Wilde')
        self.assertEqual(track2.sortName, u'Nena & Wilde, Kim')
        self.assertEqual(track2.mbidArtist,
                         u'38bfaa7f-ee98-48cb-acd0-946d7aeecd76'
                         ';4b462375-c508-432a-8c88-ceeec38b16ae')