From 8fc7aa51650f3770066ee00e9f854e644894d0ac Mon Sep 17 00:00:00 2001 From: aclist <92275929+aclist@users.noreply.github.com> Date: Fri, 15 May 2026 23:34:43 +0900 Subject: [PATCH] fix: rewrite tests --- dzgui/api/pefile.py | 4 ++++ tests/test_changelog.py | 16 ++++++++++++++-- tests/test_pefile.py | 24 +++++++++++++++--------- 3 files changed, 33 insertions(+), 11 deletions(-) diff --git a/dzgui/api/pefile.py b/dzgui/api/pefile.py index cbbd090..ff7a619 100644 --- a/dzgui/api/pefile.py +++ b/dzgui/api/pefile.py @@ -438,6 +438,10 @@ def get_app_path(folders_path: Path, appid: int) -> Path: raise AppNotInstalledError( f"Failed to find a libraryfolder for the appid {appid}" ) + if Path(app_path).exists() is False: + raise AppMovedError( + f"The location '{app_path}' pointed to by '{appid}' no longer exists and may have been changed on the disk." + ) return Path(app_path) diff --git a/tests/test_changelog.py b/tests/test_changelog.py index e3ee98d..3eae186 100644 --- a/tests/test_changelog.py +++ b/tests/test_changelog.py @@ -1,5 +1,17 @@ -def test_headings(): - with open("CHANGELOG.md", "r") as f: +import pytest + +from importlib import resources +from dzgui.const.constants import APP_NAME_LOWER, CHANGELOG_PATH + + +@pytest.fixture +def changelog(): + path = resources.files(APP_NAME_LOWER).joinpath(CHANGELOG_PATH) + return path + + +def test_headings(changelog): + with open(changelog, "r") as f: lines = f.readlines() for line in lines: if line.startswith("#"): diff --git a/tests/test_pefile.py b/tests/test_pefile.py index afd5fa3..47edc2e 100644 --- a/tests/test_pefile.py +++ b/tests/test_pefile.py @@ -2,13 +2,14 @@ import pytest from pathlib import Path import dzgui.api.pefile as PeFile -from dzgui.api.pefile import (VDFLoadError, AppNotInstalledError, AppMovedError) +from dzgui.api.pefile import VDFLoadError, AppNotInstalledError, AppMovedError from dzgui.config.query import get_config from dzgui.config.xdg import get_xdg_paths, parse_filepaths from dzgui.const.constants import APPID_DAYZ from tests.fixtures import fixture_path + pytestmark = pytest.mark.pefile @@ -16,6 +17,7 @@ pytestmark = pytest.mark.pefile def second_drive(): return fixture_path("in_library_on_second_drive.vdf") + @pytest.fixture def default_steam_path(): paths = get_xdg_paths() @@ -23,17 +25,17 @@ def default_steam_path(): conf = get_config(xdg.config) return conf["default_steam_path"] + def test_pefile_length(default_steam_path): try: - pe_file_path = PeFile.get_pefile_path( - Path(default_steam_path), APPID_DAYZ - ) + pe_file_path = PeFile.get_pefile_path(Path(default_steam_path), APPID_DAYZ) vers = PeFile.get_dayz_version(pe_file_path) st = PeFile.dayz_version_to_str(vers).split(".") except Exception as e: raise e assert len(st) == 3 + def test_invalid_pefile_path(): with pytest.raises(VDFLoadError): try: @@ -42,11 +44,14 @@ def test_invalid_pefile_path(): raise e -@pytest.mark.parametrize("fixture, exception", [ - ("not_in_library.vdf", AppNotInstalledError), - ("in_library_but_bad_path.vdf", AppMovedError), - ("malformed.vdf", VDFLoadError), - ]) +@pytest.mark.parametrize( + "fixture, exception", + [ + ("not_in_library.vdf", AppNotInstalledError), + ("in_library_but_bad_path.vdf", AppMovedError), + ("malformed.vdf", VDFLoadError), + ], +) def test_not_in_library(fixture, exception): fixture = fixture_path(fixture) with pytest.raises(exception): @@ -55,6 +60,7 @@ def test_not_in_library(fixture, exception): except Exception as e: raise e + def test_on_second_drive(second_drive): path = PeFile.get_app_path(second_drive, APPID_DAYZ) assert path == Path("/tmp")