DazedTL/tests/test_wolf_project_scanner.py
2026-07-05 14:52:12 -05:00

60 lines
1.7 KiB
Python

"""Tests for WOLF project layout helpers in util.project_scanner."""
from __future__ import annotations
from pathlib import Path
from util.project_scanner import (
find_wolf_text_archives,
wolf_has_maps,
wolf_maps_dir,
wolf_maps_packed,
)
def test_wolf_maps_dir_prefers_mapdata_subfolder(tmp_path: Path):
data = tmp_path / "Data"
(data / "MapData").mkdir(parents=True)
assert wolf_maps_dir(data) == data / "MapData"
def test_wolf_maps_dir_falls_back_to_data_root(tmp_path: Path):
data = tmp_path / "Data"
data.mkdir()
assert wolf_maps_dir(data) == data
def test_wolf_has_maps(tmp_path: Path):
data = tmp_path / "Data"
maps = data / "MapData"
maps.mkdir(parents=True)
assert not wolf_has_maps(data)
(maps / "town.mps").write_bytes(b"")
assert wolf_has_maps(data)
def test_find_wolf_text_archives_in_data_dir(tmp_path: Path):
data = tmp_path / "Data"
data.mkdir()
(data / "MapData.wolf").write_bytes(b"")
(data / "BasicData.wolf").write_bytes(b"")
found = find_wolf_text_archives(tmp_path, data)
assert found["MapData"] == data / "MapData.wolf"
assert found["BasicData"] == data / "BasicData.wolf"
def test_wolf_maps_packed_when_archive_present(tmp_path: Path):
data = tmp_path / "Data"
data.mkdir()
(data / "BasicData" / "CommonEvent.dat").mkdir(parents=True)
(data / "MapData.wolf").write_bytes(b"")
assert wolf_maps_packed(tmp_path, data)
def test_wolf_maps_packed_false_when_loose_maps_exist(tmp_path: Path):
data = tmp_path / "Data"
maps = data / "MapData"
maps.mkdir(parents=True)
(maps / "field.mps").write_bytes(b"")
(data / "MapData.wolf").write_bytes(b"")
assert not wolf_maps_packed(tmp_path, data)