chore: add config tests

This commit is contained in:
aclist 2026-07-10 17:09:49 +09:00
parent b8fbbbb1cd
commit ec8f6a3d36
6 changed files with 247 additions and 0 deletions

View File

@ -0,0 +1,13 @@
"InstallConfigStore"
{
"Software"
{
"Valve"
{
"Steam"
{
"AllowDownloadsDuringGameplay" "1"
}
}
}
}

View File

@ -0,0 +1,13 @@
"InstallConfigStore"
{
"Software"
{
"Valve"
{
"Steam"
{
"AllowDownloadsDuringGameplay" "0"
}
}
}
}

View File

@ -0,0 +1,53 @@
"AppState"
{
"appid" "111"
"Universe" "1"
"name" "TEST APP"
"StateFlags" "4"
"installdir" "TESTAPP"
"LastUpdated" "0"
"LastPlayed" "0"
"SizeOnDisk" "0"
"StagingSize" "0"
"buildid" "0"
"LastOwner" "0"
"DownloadType" "2"
"UpdateResult" "0"
"BytesToDownload" "0"
"BytesDownloaded" "0"
"BytesToStage" "0"
"BytesStaged" "0"
"TargetBuildID" "0"
"AutoUpdateBehavior" "0"
"AllowOtherDownloadsWhileRunning" "1"
"ScheduledAutoUpdate" "0"
"FullValidateAfterNextUpdate" "1"
"InstalledDepots"
{
"1110"
{
"manifest" "0"
"size" "0"
}
}
"SharedDepots"
{
"228983" "228980"
"228985" "228980"
"228988" "228980"
"228990" "228980"
"229004" "228980"
}
"UserConfig"
{
"language" "english"
"platform_override_dest" "linux"
"platform_override_source" "windows"
}
"MountedConfig"
{
"language" "english"
"platform_override_dest" "linux"
"platform_override_source" "windows"
}
}

View File

@ -0,0 +1,53 @@
"AppState"
{
"appid" "222"
"Universe" "1"
"name" "TEST APP"
"StateFlags" "4"
"installdir" "TESTAPP"
"LastUpdated" "0"
"LastPlayed" "0"
"SizeOnDisk" "0"
"StagingSize" "0"
"buildid" "0"
"LastOwner" "0"
"DownloadType" "2"
"UpdateResult" "0"
"BytesToDownload" "0"
"BytesDownloaded" "0"
"BytesToStage" "0"
"BytesStaged" "0"
"TargetBuildID" "0"
"AutoUpdateBehavior" "0"
"AllowOtherDownloadsWhileRunning" "2"
"ScheduledAutoUpdate" "0"
"FullValidateAfterNextUpdate" "1"
"InstalledDepots"
{
"2220"
{
"manifest" "0"
"size" "0"
}
}
"SharedDepots"
{
"228983" "228980"
"228985" "228980"
"228988" "228980"
"228990" "228980"
"229004" "228980"
}
"UserConfig"
{
"language" "english"
"platform_override_dest" "linux"
"platform_override_source" "windows"
}
"MountedConfig"
{
"language" "english"
"platform_override_dest" "linux"
"platform_override_source" "windows"
}
}

View File

@ -0,0 +1,53 @@
"AppState"
{
"appid" "333"
"Universe" "1"
"name" "TEST APP"
"StateFlags" "4"
"installdir" "TESTAPP"
"LastUpdated" "0"
"LastPlayed" "0"
"SizeOnDisk" "0"
"StagingSize" "0"
"buildid" "0"
"LastOwner" "0"
"DownloadType" "2"
"UpdateResult" "0"
"BytesToDownload" "0"
"BytesDownloaded" "0"
"BytesToStage" "0"
"BytesStaged" "0"
"TargetBuildID" "0"
"AutoUpdateBehavior" "0"
"AllowOtherDownloadsWhileRunning" "0"
"ScheduledAutoUpdate" "0"
"FullValidateAfterNextUpdate" "1"
"InstalledDepots"
{
"3330"
{
"manifest" "0"
"size" "0"
}
}
"SharedDepots"
{
"228983" "228980"
"228985" "228980"
"228988" "228980"
"228990" "228980"
"229004" "228980"
}
"UserConfig"
{
"language" "english"
"platform_override_dest" "linux"
"platform_override_source" "windows"
}
"MountedConfig"
{
"language" "english"
"platform_override_dest" "linux"
"platform_override_source" "windows"
}
}

View File

@ -0,0 +1,62 @@
import pytest
import tempfile
from _pytest.monkeypatch import MonkeyPatch
from pathlib import Path
from dzgui.api.acf import ACF
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