Skip to content
Snippets Groups Projects
Forked from funkwhale / funkwhale
7011 commits behind the upstream repository.
test_utils.py 1.13 KiB
import os
import pytest

from funkwhale_api.music import utils

DATA_DIR = os.path.dirname(os.path.abspath(__file__))


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'


@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