def test_compare_to_release(self): release = load_test_json('release.json') metadata = Metadata() release_to_metadata(release, metadata) match = metadata.compare_to_release(release, Cluster.comparison_weights) self.assertEqual(1.0, match.similarity) self.assertEqual(release, match.release)
def test_compare_to_track(self): track_json = load_test_json('track.json') track = Track(track_json['id']) track_to_metadata(track_json, track) match = track.metadata.compare_to_track(track_json, File.comparison_weights) self.assertEqual(1.0, match.similarity) self.assertEqual(track_json, match.track)
def test_compare_to_track_with_score(self): track_json = load_test_json('track.json') track = Track(track_json['id']) track_to_metadata(track_json, track) for score, sim in ((42, 0.42), ('42', 0.42), ('foo', 1.0), (None, 1.0)): track_json['score'] = score match = track.metadata.compare_to_track(track_json, File.comparison_weights) self.assertEqual(sim, match.similarity)
def test_compare_to_release_with_score(self): release = load_test_json('release.json') metadata = Metadata() release_to_metadata(release, metadata) for score, sim in ((42, 0.42), ('42', 0.42), ('foo', 1.0), (None, 1.0)): release['score'] = score match = metadata.compare_to_release(release, Cluster.comparison_weights) self.assertEqual(sim, match.similarity)
def test_preferred_formats(self): release = load_test_json('release.json') parts = [] weights_from_preferred_formats(parts, release, [], 777) self.assertFalse(parts) weights_from_preferred_formats(parts, release, ['Digital Media'], 777) self.assertEqual(parts[0], (0.0, 777)) weights_from_preferred_formats(parts, release, ['12" Vinyl'], 777) self.assertEqual(parts[1], (1.0, 777))
def test_compare_to_release_parts_totalalbumtracks_totaltracks_fallback(self): release = load_test_json('release_multidisc.json') metadata = Metadata() weights = {"totalalbumtracks": 30} release_to_metadata(release, metadata) for totaltracks, sim in ((7, 1.0), (6, 0.3), (8, 0.0)): metadata['totaltracks'] = totaltracks parts = metadata.compare_to_release_parts(release, weights) self.assertIn((sim, 30), parts)
def test_preferred_countries(self): release = load_test_json('release.json') parts = [] weights_from_preferred_countries(parts, release, [], 666) self.assertFalse(parts) weights_from_preferred_countries(parts, release, ['FR'], 666) self.assertEqual(parts[0], (0.0, 666)) weights_from_preferred_countries(parts, release, ['GB'], 666) self.assertEqual(parts[1], (1.0, 666))
def test_2(self): self.set_config_values(settings) rlist = load_test_json('release_group_3.json') r = ReleaseGroup(1) r._parse_versions(rlist) self.assertEqual(r.versions[0]['name'], '5 / 2011 / FR / CD / label A / cat 123 / special A') self.assertEqual(r.versions[1]['name'], '5 / 2011 / FR / CD / label A / cat 123')
def test_3(self): config.setting = settings.copy() rlist = load_test_json('release_group_4.json') r = ReleaseGroup(1) r._parse_versions(rlist) self.assertEqual(r.versions[0]['name'], '5 / 2009 / FR / CD / label A / cat 123 / 0123456789') self.assertEqual(r.versions[1]['name'], '5 / 2009 / FR / CD / label A / cat 123 / [no barcode]')
def test_weights_from_release_type_scores(self): release = load_test_json('release.json') parts = [] weights_from_release_type_scores(parts, release, {'Album': 0.75}, 666) self.assertEqual(parts[0], (0.75, 666)) weights_from_release_type_scores(parts, release, {}, 666) self.assertEqual(parts[1], (0.5, 666)) del release['release-group'] weights_from_release_type_scores(parts, release, {}, 777) self.assertEqual(parts[2], (0.0, 777))
def test_1(self): config.setting = settings.copy() rlist = load_test_json('release_group_2.json') r = ReleaseGroup(1) r._parse_versions(rlist) self.assertEqual(r.versions[0]['name'], '5 / 2009 / GB / CD / label A / cat 123 / Jewel Case / special') self.assertEqual(r.versions[1]['name'], '5 / 2009 / GB / CD / label A / cat 123 / Digipak / special') self.assertEqual(r.versions[2]['name'], '5 / 2009 / GB / CD / label A / cat 123 / Digipak / specialx')
def init_test(self, filename): config.setting = settings.copy() self.json_doc = load_test_json(filename)
def init_test(self, filename): self.set_config_values(settings) self.json_doc = load_test_json(filename)