dzgui/tests/test_app_download_settings.py
2026-07-10 17:31:05 +09:00

61 lines
1.6 KiB
Python

import pytest
from _pytest.monkeypatch import MonkeyPatch
from pathlib import Path
from dzgui.api.steam import get_app_allows_downloads
from tests.fixtures import fixture_path
pytestmark = pytest.mark.apitest
def mock_path(p: Path, appid: int) -> Path:
return Path(fixture_path("api"))
def mock_config_allows(p: Path) -> Path:
return Path(fixture_path("api/client_allows_downloads.vdf"))
def mock_config_disallows(p: Path) -> Path:
return Path(fixture_path("api/client_disallows_downloads.vdf"))
def mock_config_missing(p: Path) -> Path:
return Path(fixture_path(""))
@pytest.fixture
def client_allows() -> Path:
return Path(fixture_path("api/client_allows_downloads.vdf"))
@pytest.fixture
def steam_path() -> Path:
return Path(fixture_path("api"))
@pytest.fixture(scope="module", autouse=True)
def patch_api() -> None:
mp = MonkeyPatch()
mp.setattr("dzgui.api.steam.get_app_path", mock_path)
yield
mp.undo()
def test_app_allows_downloads(steam_path) -> None:
assert get_app_allows_downloads(steam_path, 111) is True
def test_app_disallows_downloads(steam_path):
assert get_app_allows_downloads(steam_path, 222) is False
def test_app_delegates_downloads(monkeypatch, steam_path, client_allows):
monkeypatch.setattr("dzgui.api.steam.get_config", mock_config_disallows)
assert get_app_allows_downloads(steam_path, 333) is False
monkeypatch.setattr("dzgui.api.steam.get_config", mock_config_allows)
assert get_app_allows_downloads(steam_path, 333) is True
monkeypatch.setattr("dzgui.api.steam.get_config", mock_config_missing)
assert get_app_allows_downloads(steam_path, 333) is True