import platform import subprocess from pathlib import Path import pytest from dangerzone import util VERSION_FILE_NAME = "version.txt" def test_get_resource_path() -> None: share_dir = Path("share").resolve() resource_path = Path(util.get_resource_path(VERSION_FILE_NAME)).parent assert share_dir.samefile(resource_path), ( f"{share_dir} is not the same file as {resource_path}" ) @pytest.mark.skipif(platform.system() != "Windows", reason="Windows-specific") def test_get_subprocess_startupinfo() -> None: startupinfo = util.get_subprocess_startupinfo() assert isinstance(startupinfo, subprocess.STARTUPINFO) # type: ignore[attr-defined] def test_replace_control_chars(uncommon_text: str, sanitized_text: str) -> None: """Test that the replace_control_chars() function works properly.""" assert util.replace_control_chars(uncommon_text) == sanitized_text assert util.replace_control_chars("normal text") == "normal text" assert util.replace_control_chars("") == "" assert util.replace_control_chars("multi-line\ntext") == "multi-line�text" assert ( util.replace_control_chars("multi-line\ntext", keep_newlines=True) == "multi-line\ntext" )