104 lines
3.3 KiB
Python
104 lines
3.3 KiB
Python
|
import pytest
|
||
|
import uuid
|
||
|
from mopidy import models
|
||
|
|
||
|
import mopidy_funkwhale.library
|
||
|
|
||
|
|
||
|
def test_convert_artist_to_model():
|
||
|
payload = {
|
||
|
'id': 42,
|
||
|
'mbid': str(uuid.uuid4()),
|
||
|
'name': "Test artist",
|
||
|
}
|
||
|
|
||
|
result = mopidy_funkwhale.library.convert_to_artist(payload)
|
||
|
|
||
|
assert type(result) == models.Artist
|
||
|
assert result.musicbrainz_id == payload['mbid']
|
||
|
assert result.uri == 'funkwhale:artists:%s' % (payload['id'],)
|
||
|
assert result.name == payload['name']
|
||
|
assert result.sortname == payload['name']
|
||
|
|
||
|
|
||
|
def test_convert_album_to_model():
|
||
|
payload = {
|
||
|
"id": 3,
|
||
|
"tracks": [1, 2, 3, 4],
|
||
|
"mbid": str(uuid.uuid4()),
|
||
|
"title": "Test album",
|
||
|
"artist": {
|
||
|
'id': 42,
|
||
|
'mbid': str(uuid.uuid4()),
|
||
|
'name': "Test artist",
|
||
|
},
|
||
|
"release_date": "2017-01-01",
|
||
|
"cover": {
|
||
|
"original": "/media/albums/covers/2018/10/03/b4e94b07e-da27-4df4-ae2a-d924a9448544.jpg"
|
||
|
},
|
||
|
}
|
||
|
|
||
|
result = mopidy_funkwhale.library.convert_to_album(payload)
|
||
|
|
||
|
assert type(result) == models.Album
|
||
|
assert result.musicbrainz_id == payload['mbid']
|
||
|
assert result.uri == 'funkwhale:albums:%s' % (payload['id'],)
|
||
|
assert result.name == payload['title']
|
||
|
assert result.date == payload['release_date']
|
||
|
assert result.num_tracks == len(payload['tracks'])
|
||
|
assert result.artists == frozenset([mopidy_funkwhale.library.convert_to_artist(payload['artist'])])
|
||
|
assert result.images == frozenset([payload['cover']['original']])
|
||
|
|
||
|
|
||
|
def test_convert_album_to_model():
|
||
|
payload = {
|
||
|
"id": 2,
|
||
|
"title": 'Test track',
|
||
|
"mbid": str(uuid.uuid4()),
|
||
|
"creation_date": "2017-01-01",
|
||
|
"position": 12,
|
||
|
"bitrate": 128000,
|
||
|
"duration": 120,
|
||
|
"artist": {
|
||
|
'id': 43,
|
||
|
'mbid': str(uuid.uuid4()),
|
||
|
'name': "Test artist 2",
|
||
|
},
|
||
|
"album": {
|
||
|
"id": 3,
|
||
|
"tracks": [1, 2, 3, 4],
|
||
|
"mbid": str(uuid.uuid4()),
|
||
|
"title": "Test album",
|
||
|
"artist": {
|
||
|
'id': 42,
|
||
|
'mbid': str(uuid.uuid4()),
|
||
|
'name': "Test artist",
|
||
|
},
|
||
|
"release_date": "2017-01-01",
|
||
|
"cover": {
|
||
|
"original": "/media/albums/covers/2018/10/03/b4e94b07e-da27-4df4-ae2a-d924a9448544.jpg"
|
||
|
},
|
||
|
}
|
||
|
}
|
||
|
|
||
|
result = mopidy_funkwhale.library.convert_to_track(payload)
|
||
|
|
||
|
assert type(result) == models.Track
|
||
|
assert result.musicbrainz_id == payload['mbid']
|
||
|
assert result.uri == 'funkwhale:tracks:%s' % (payload['id'],)
|
||
|
assert result.name == payload['title']
|
||
|
assert result.date == payload['album']['release_date']
|
||
|
assert result.length == payload['duration'] * 1000
|
||
|
assert result.bitrate == payload['bitrate'] / 1000
|
||
|
|
||
|
assert result.album == mopidy_funkwhale.library.convert_to_album(payload['album'])
|
||
|
assert result.artists == frozenset([mopidy_funkwhale.library.convert_to_artist(payload['artist'])])
|
||
|
|
||
|
@pytest.mark.parametrize('uri, expected', [
|
||
|
('funkwhale:albums:42', ('album', 42)),
|
||
|
('funkwhale:tracks:42', ('track', 42)),
|
||
|
('funkwhale:artists:42', ('artist', 42)),
|
||
|
])
|
||
|
def test_parse_uri(uri, expected):
|
||
|
assert mopidy_funkwhale.library.parse_uri(uri) == expected
|