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, dict()) def test_analyze_playability_missing_liquidsoap(): with patch( "libretime_analyzer.pipeline.analyze_playability.LIQUIDSOAP_EXECUTABLE", "foobar", ): analyze_playability(str(FILES[0].path), dict()) 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 buster, bullseye, focal if distro.codename() in ("buster", "bullseye", "focal"): 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")