mirror of
https://github.com/aclist/dztui.git
synced 2026-08-26 01:37:18 +02:00
53 lines
1.5 KiB
Python
53 lines
1.5 KiB
Python
import pytest
|
|
import shutil
|
|
import tempfile
|
|
|
|
from pathlib import Path
|
|
from typing import TYPE_CHECKING
|
|
|
|
import dzgui.api.mods
|
|
import dzgui.config.query
|
|
|
|
from tests.fixtures import fixture_path
|
|
|
|
if TYPE_CHECKING:
|
|
from dzgui.const.enums import Preferences
|
|
|
|
pytestmark = pytest.mark.mods
|
|
|
|
@pytest.fixture
|
|
def versions() -> str:
|
|
return fixture_path("dzg.versions")
|
|
|
|
@pytest.fixture
|
|
def tmp() -> str:
|
|
with tempfile.NamedTemporaryFile(delete=False) as f:
|
|
tmp = f.name
|
|
return tmp
|
|
|
|
def mock_local_ids(path: Path) -> list[int]:
|
|
return [3410710885, 3739934289]
|
|
|
|
def mock_lookup(path: Path, prefs: "Preferences") -> str:
|
|
return ""
|
|
|
|
def test_signatures(monkeypatch, tmp: str, versions: str) -> None:
|
|
ids = [1559212036, 1654462998]
|
|
shutil.copyfile(versions, tmp)
|
|
path = Path(tmp)
|
|
monkeypatch.setattr("dzgui.api.mods.lookup", mock_lookup)
|
|
dzgui.api.mods.remove_stale_signatures(path, path, ids)
|
|
with open(tmp, "r") as f:
|
|
lines = f.readlines()
|
|
assert ids not in lines
|
|
|
|
def test_signatures_with_no_ids(monkeypatch, tmp: str, versions: str) -> None:
|
|
shutil.copyfile(versions, tmp)
|
|
path = Path(tmp)
|
|
monkeypatch.setattr("dzgui.api.mods.get_local_mod_ids", mock_local_ids)
|
|
monkeypatch.setattr("dzgui.api.mods.lookup", mock_lookup)
|
|
dzgui.api.mods.remove_stale_signatures(path, path)
|
|
with open(tmp, "r") as f:
|
|
lines = f.readlines()
|
|
assert lines == ["3410710885,1752864732\n", "3739934289,1780855136\n"]
|