dangerzone/tests/test_util.py
Alexis Métaireau 9bad001c04
chore: remove fixture imports in the tests
They ideally should find their way by themselves.

> You don’t need to import the fixture you want to use in a test,
> it automatically gets discovered by pytest. The discovery of fixture
> functions starts at test classes, then test modules, then conftest.py
> files and finally builtin and third party plugins.>
>
> — [pytest docs](https://docs.pytest.org/en/4.6.x/fixture.html#conftest-py-sharing-fixture-functions)
2024-06-05 15:56:09 +02:00

35 lines
1.2 KiB
Python
Raw Permalink Blame History

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<6E>text"
assert (
util.replace_control_chars("multi-line\ntext", keep_newlines=True)
== "multi-line\ntext"
)