def test_add_recording_different_cases(self): """ Tests that recordings with only case differences get the same MessyBrainz ID. """ with messybrainz.engine.connect() as connection: msid1 = data.submit_recording(connection, recording) msid2 = str(data.get_id_from_recording(connection, recording_diff_case)) self.assertEqual(msid1, msid2)
def test_get_release(self): with messybrainz.engine.connect() as connection: recording_msid = data.submit_recording(connection, recording) release_msid = data.get_release(connection, recording['release']) recording_data = data.load_recordings_from_msids( connection, [recording_msid])[0] self.assertEqual(release_msid, recording_data['ids']['release_msid'])
def test_get_artist_credit(self): with messybrainz.engine.connect() as connection: recording_msid = data.submit_recording(connection, recording) artist_msid = data.get_artist_credit(connection, recording['artist']) recording_data = data.load_recordings_from_msids( connection, [recording_msid])[0] self.assertEqual(artist_msid, recording_data['ids']['artist_msid'])
def insert_single(connection, recording): """ Inserts a single recording into MessyBrainz. Args: connection: the sqlalchemy db connection to be used to execute queries recording: the recording to be inserted Returns: A dict containing the recording data for inserted recording """ gid = data.get_id_from_recording(connection, recording) if not gid: gid = data.submit_recording(connection, recording) loaded = data.load_recordings_from_msids(connection, [gid])[0] return loaded
def insert_test_data_with_metadata(self, user_id, neg_score=False): """ Insert test data with metadata into the database """ with msb_db.engine.connect() as connection: msid = get_id_from_meta_hash(connection, self.sample_recording) if msid is None: msid = submit_recording(connection, self.sample_recording) msid = str(msid) artists = load_recordings_from_msids(connection, [msid]) self.saved_artist_msid = artists[0]["ids"]["artist_msid"] self.sample_feedback_with_metadata[0]["recording_msid"] = msid query = """INSERT INTO mbid_mapping_metadata (recording_mbid, release_mbid, release_name, artist_credit_id, artist_mbids, artist_credit_name, recording_name) VALUES ('076255b4-1575-11ec-ac84-135bf6a670e3', '1fd178b4-1575-11ec-b98a-d72392cd8c97', 'release_name', 65, '{6a221fda-2200-11ec-ac7d-dfa16a57158f}'::UUID[], 'artist name', 'recording name')""" with ts.engine.connect() as connection: connection.execute(sqlalchemy.text(query)) query = """INSERT INTO mbid_mapping (recording_msid, recording_mbid, match_type, last_updated) VALUES (:msid, :mbid, :match_type, now())""" with ts.engine.connect() as connection: connection.execute( sqlalchemy.text(query), { "msid": msid, "mbid": "076255b4-1575-11ec-ac84-135bf6a670e3", "match_type": "exact_match" }) for fb in self.sample_feedback_with_metadata: db_feedback.insert( Feedback(user_id=user_id, recording_msid=fb["recording_msid"], score=fb["score"])) return len(self.sample_feedback_with_metadata)
def test_submit_recording(self): with messybrainz.engine.connect() as connection: recording_msid = data.submit_recording(connection, recording) self.assertEqual( recording_msid, str(data.get_id_from_recording(connection, recording)))
def test_load_recordings_from_msids(self): with messybrainz.engine.connect() as connection: recording_msid = data.submit_recording(connection, recording) result = data.load_recordings_from_msids(connection, [recording_msid])[0] self.assertDictEqual(result['payload'], recording)