from unittest.mock import patch import distro import pytest from libretime_analyzer.pipeline.analyze_playability import ( UnplayableFileError, analyze_playability, ) from ..fixtures import FILE_INVALID_DRM, FILES @pytest.mark.parametrize( "filepath", map(lambda i: str(i.path), FILES), ) def test_analyze_playability(filepath): analyze_playability(filepath, {}) def test_analyze_playability_missing_liquidsoap(): with patch( "libretime_analyzer.pipeline._liquidsoap.LIQUIDSOAP", "foobar", ): analyze_playability(str(FILES[0].path), {}) def test_analyze_playability_invalid_filepath(): with pytest.raises(UnplayableFileError): test_analyze_playability("non-existent-file") def test_analyze_playability_invalid_wma(): # Liquisoap does not fail with wma files on focal, bullseye, jammy if distro.codename() in ("focal", "bullseye", "jammy"): return with pytest.raises(UnplayableFileError): test_analyze_playability(FILE_INVALID_DRM) def test_analyze_playability_unknown(): with pytest.raises(UnplayableFileError): test_analyze_playability("https://www.google.com")