2021-06-03 15:20:39 +02:00
|
|
|
import datetime
|
2014-03-25 19:34:50 +01:00
|
|
|
import os
|
2020-01-21 08:13:42 +01:00
|
|
|
from queue import Queue
|
2021-06-03 15:20:39 +02:00
|
|
|
|
2021-06-04 14:06:02 +02:00
|
|
|
import pytest
|
2021-10-17 16:24:37 +02:00
|
|
|
|
2022-01-17 20:31:43 +01:00
|
|
|
from libretime_analyzer.pipeline import Pipeline
|
2014-03-10 21:32:23 +01:00
|
|
|
|
2021-06-04 14:06:02 +02:00
|
|
|
from .conftest import AUDIO_FILENAME, AUDIO_IMPORT_DEST
|
2021-05-27 16:23:02 +02:00
|
|
|
|
2014-03-10 21:32:23 +01:00
|
|
|
|
2021-05-29 18:39:10 +02:00
|
|
|
def test_run_analysis(src_dir, dest_dir):
|
2021-06-04 14:06:02 +02:00
|
|
|
queue = Queue()
|
2022-01-17 20:31:43 +01:00
|
|
|
Pipeline.run_analysis(
|
2021-06-04 14:06:02 +02:00
|
|
|
queue,
|
|
|
|
os.path.join(src_dir, AUDIO_FILENAME),
|
|
|
|
dest_dir,
|
|
|
|
AUDIO_FILENAME,
|
|
|
|
"file",
|
|
|
|
"",
|
2021-05-27 16:23:02 +02:00
|
|
|
)
|
2021-06-04 14:06:02 +02:00
|
|
|
metadata = queue.get()
|
|
|
|
|
|
|
|
assert metadata["track_title"] == "Test Title"
|
|
|
|
assert metadata["artist_name"] == "Test Artist"
|
|
|
|
assert metadata["album_title"] == "Test Album"
|
|
|
|
assert metadata["year"] == "1999"
|
|
|
|
assert metadata["genre"] == "Test Genre"
|
|
|
|
assert metadata["mime"] == "audio/mp3"
|
2021-08-30 21:23:48 +02:00
|
|
|
assert metadata["length_seconds"] == pytest.approx(10.0, abs=0.1)
|
2021-05-27 16:23:02 +02:00
|
|
|
assert metadata["length"] == str(
|
|
|
|
datetime.timedelta(seconds=metadata["length_seconds"])
|
|
|
|
)
|
2021-06-04 14:06:02 +02:00
|
|
|
assert os.path.exists(os.path.join(dest_dir, AUDIO_IMPORT_DEST))
|
|
|
|
|
|
|
|
|
|
|
|
@pytest.mark.parametrize(
|
|
|
|
"params,exception",
|
|
|
|
[
|
2021-06-08 14:12:57 +02:00
|
|
|
((Queue(), "", "", ""), TypeError),
|
|
|
|
((Queue(), "", "", ""), TypeError),
|
|
|
|
((Queue(), "", "", ""), TypeError),
|
|
|
|
((Queue(), "", "", ""), TypeError),
|
2021-06-04 14:06:02 +02:00
|
|
|
],
|
|
|
|
)
|
|
|
|
def test_run_analysis_wrong_params(params, exception):
|
|
|
|
with pytest.raises(exception):
|
2022-01-17 20:31:43 +01:00
|
|
|
Pipeline.run_analysis(*params)
|