2018-05-15 19:59:29 +00:00
|
|
|
import os
|
|
|
|
import pytest
|
|
|
|
|
2018-02-26 17:27:41 +00:00
|
|
|
from funkwhale_api.music import utils
|
|
|
|
|
2018-05-15 19:59:29 +00:00
|
|
|
DATA_DIR = os.path.dirname(os.path.abspath(__file__))
|
|
|
|
|
2018-02-26 17:27:41 +00:00
|
|
|
|
|
|
|
def test_guess_mimetype_try_using_extension(factories, mocker):
|
|
|
|
mocker.patch(
|
|
|
|
'magic.from_buffer', return_value='audio/mpeg')
|
|
|
|
f = factories['music.TrackFile'].build(
|
|
|
|
audio_file__filename='test.ogg')
|
|
|
|
|
|
|
|
assert utils.guess_mimetype(f.audio_file) == 'audio/mpeg'
|
|
|
|
|
|
|
|
|
|
|
|
def test_guess_mimetype_try_using_extension_if_fail(factories, mocker):
|
|
|
|
mocker.patch(
|
|
|
|
'magic.from_buffer', return_value='application/octet-stream')
|
|
|
|
f = factories['music.TrackFile'].build(
|
|
|
|
audio_file__filename='test.mp3')
|
|
|
|
|
|
|
|
assert utils.guess_mimetype(f.audio_file) == 'audio/mpeg'
|
2018-05-15 19:59:29 +00:00
|
|
|
|
|
|
|
|
|
|
|
@pytest.mark.parametrize('name, expected', [
|
|
|
|
('sample.flac', {'bitrate': 1608000, 'length': 0.001}),
|
|
|
|
('test.mp3', {'bitrate': 8000, 'length': 267.70285714285717}),
|
|
|
|
('test.ogg', {'bitrate': 128000, 'length': 229.18304166666667}),
|
|
|
|
])
|
|
|
|
def test_get_audio_file_data(name, expected):
|
|
|
|
path = os.path.join(DATA_DIR, name)
|
|
|
|
with open(path, 'rb') as f:
|
|
|
|
result = utils.get_audio_file_data(f)
|
|
|
|
|
|
|
|
assert result == expected
|