mirror of
https://github.com/freedomofpress/dangerzone.git
synced 2025-04-28 18:02:38 +02:00

Add `replace_control_chars()` function in `util.py`, which can be used to sanitize strings from ANSI escape sequences or weird Unicode symbols.
32 lines
1 KiB
Python
32 lines
1 KiB
Python
import platform
|
|
import subprocess
|
|
from pathlib import Path
|
|
|
|
import pytest
|
|
|
|
from dangerzone import util
|
|
|
|
from . import sanitized_text, uncommon_text
|
|
|
|
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("") == ""
|