Skip to content

Commit

Permalink
fix broken tests due to log args; add new test to new use -case
Browse files Browse the repository at this point in the history
  • Loading branch information
biancarosa committed Jul 20, 2024
1 parent c568351 commit 63dc3d8
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 7 deletions.
16 changes: 9 additions & 7 deletions api/app/songs/latest_songs.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,14 +26,16 @@ def route(user):
try:
req = requests.get(api_url, timeout=TIMEOUT)
lastfm_response = req.json()
log.info("Response received", response=lastfm_response)
log.info("Response received", extra={'response': lastfm_response})
try:
track = lastfm_response['recenttracks']['track'][0]
except KeyError:
log.info("User likely exist %s", user)
return jsonify({
'message': 'USER_LIKELY_DOESNT_EXIST',
}), 404
try:
recent_tracks = lastfm_response['recenttracks']
except KeyError:
log.info("User likely exist %s", user)
return jsonify({
'message': 'USER_LIKELY_DOESNT_EXIST',
}), 404
track = recent_tracks['track'][0]
except IndexError:
return jsonify({
'message': 'NO_TRACKS_FOUND'
Expand Down
4 changes: 4 additions & 0 deletions api/tests/unit/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -121,3 +121,7 @@ def lastfm_empty_response():
"track": []
}
}

@pytest.fixture
def lastfm_no_recent_tracks_response():
return {}
12 changes: 12 additions & 0 deletions api/tests/unit/songs/test_latest_songs.py
Original file line number Diff line number Diff line change
Expand Up @@ -55,3 +55,15 @@ def test_get_with_success_no_tracks(mock_get, client, lastfm_empty_response):
assert rv.json == {
'message': 'NO_TRACKS_FOUND'
}

@patch.dict(os.environ, {"LASTFM_API_KEY": 'something old'})
@patch('requests.get')
def test_get_with_error_user_not_found_tracks(mock_get, client, lastfm_no_recent_tracks_response):
mock_get.return_value.status_code = 200
mock_get.return_value.json.return_value = lastfm_no_recent_tracks_response
rv = client.get('/user/latest-song')

assert rv.status_code == 404
assert rv.json == {
'message': 'USER_LIKELY_DOESNT_EXIST'
}

0 comments on commit 63dc3d8

Please sign in to comment.