Skip to content

Commit

Permalink
Merge pull request #39 from hudsonbrendon/fox/track-get
Browse files Browse the repository at this point in the history
Fix/track get
  • Loading branch information
hudsonbrendon authored Jan 7, 2025
2 parents 5e508ab + af5f9d4 commit cecb026
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 31 deletions.
22 changes: 5 additions & 17 deletions pymusixmatch/musixmatch.py
Original file line number Diff line number Diff line change
Expand Up @@ -211,34 +211,22 @@ def track_search(

def track_get(
self,
track_id,
commontrack_id=None,
track_isrc=None,
track_mbid=None,
_format="json",
commontrack_id: Optional[str] = "",
track_isrc: Optional[str] = "",
):
"""Get a track info from our database:
title, artist, instrumental flag and cover art.
Parameters:
track_id - The musiXmatch track id.
commontrack_id - The musiXmatch commontrack id.
track_isrc - A valid ISRC identifier.
track_mbid - The musicbrainz recording id.
format - Decide the output type json or xml (default json).
commontrack_id (str): The musiXmatch commontrack id.
track_isrc (str): A valid ISRC identifier.
"""
data = self._request(
self._get_url(
"track.get?"
"track_id={}&commontrack_id={}"
"&track_isrc={}&track_mbid={}"
"&format={}".format(
track_id,
"track.get?commontrack_id={}&track_isrc={}".format(
commontrack_id,
track_isrc,
track_mbid,
_format,
),
),
)
Expand Down
10 changes: 10 additions & 0 deletions tests/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -98,3 +98,13 @@ def track_search() -> dict:
},
}
}


@pytest.fixture
def track_get() -> dict:
return {
"message": {
"header": {"status_code": 200, "execute_time": 0.00136},
"body": {"track": "track"},
}
}
19 changes: 5 additions & 14 deletions tests/test_musixmatch.py
Original file line number Diff line number Diff line change
Expand Up @@ -139,20 +139,11 @@ def test_track_search_with_invalid_s_track_rating(
s_track_rating="invalid",
)

@pytest.mark.skip("Refactor test")
def test_track_get(self):
self.assertEqual(
self.musixmatch.track_get(15445219)["message"]["body"]["track"][
"artist_name"
],
"Lady Gaga",
)
self.assertEqual(
self.musixmatch.track_get(15445219)["message"]["body"]["track"][
"album_name"
],
"The Fame Monster",
)
def test_track_get(self, requests_mock, track_get: dict) -> None:
url = "https://api.musixmatch.com/ws/1.1/track.get?commontrack_id=12345&track_isrc=&apikey=test"
requests_mock.get(url=url, json=track_get)
request = self.musixmatch.track_get(12345)
assert track_get == request

def test_track_lyrics_get(self, requests_mock, tracks: dict) -> None:
url = "https://api.musixmatch.com/ws/1.1/track.lyrics.get?track_id=12345"
Expand Down

0 comments on commit cecb026

Please sign in to comment.