Пример #1
0
 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)
Пример #2
0
 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'])
Пример #3
0
 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'])
Пример #4
0
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)
Пример #6
0
 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)))
Пример #7
0
 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)