funkwhale/api/tests/music/test_utils.py

38 wiersze
1.2 KiB
Python
Czysty Zwykły widok Historia

import os
import pytest
2018-02-26 17:27:41 +00:00
from funkwhale_api.music import utils
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):
2018-06-09 13:36:16 +00:00
mocker.patch("magic.from_buffer", return_value="audio/mpeg")
f = factories["music.TrackFile"].build(audio_file__filename="test.ogg")
2018-02-26 17:27:41 +00:00
2018-06-09 13:36:16 +00:00
assert utils.guess_mimetype(f.audio_file) == "audio/mpeg"
2018-02-26 17:27:41 +00:00
2018-06-09 13:36:16 +00:00
@pytest.mark.parametrize("wrong", ["application/octet-stream", "application/x-empty"])
def test_guess_mimetype_try_using_extension_if_fail(wrong, factories, mocker):
2018-06-09 13:36:16 +00:00
mocker.patch("magic.from_buffer", return_value=wrong)
f = factories["music.TrackFile"].build(audio_file__filename="test.mp3")
2018-02-26 17:27:41 +00:00
2018-06-09 13:36:16 +00:00
assert utils.guess_mimetype(f.audio_file) == "audio/mpeg"
2018-06-09 13:36:16 +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)
2018-06-09 13:36:16 +00:00
with open(path, "rb") as f:
result = utils.get_audio_file_data(f)
assert result == expected