mirror of
https://github.com/aclist/dztui.git
synced 2026-08-25 17:32:36 +02:00
61 lines
1.6 KiB
Python
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
|