37 lines
3.2 KiB
Markdown
37 lines
3.2 KiB
Markdown
# План работ по рефакторингу API и расширению тестов
|
||
|
||
## 1. Рефакторинг vault_utils.py
|
||
- [x] Заменить единый `vault_query` с хардкодом строк на экспортируемые прямые функции.
|
||
- [x] Обновить XML-doc (docstrings) для всех методов.
|
||
- [x] Добавить универсальную функцию `get_recent_files` (на базе JsonLogic).
|
||
|
||
## 2. Рефакторинг faction_utils.py
|
||
- [x] Перевести вызовы с `vault_query(...)` на прямые вызовы API.
|
||
- [x] Переписать `get_all_factions` и `get_recent_events` как обёртки вокруг `get_recent_files`.
|
||
|
||
## 3. Рефакторинг time_utils.py
|
||
- [x] Обновить импорты из `vault_utils`.
|
||
- [x] Заменить `vault_query` на прямые методы (`get_file`, `write_file`).
|
||
|
||
## 4. Исследование Obsidian Local REST API
|
||
- [x] Добавить примеры JSONLogic-запросов и PowerShell-скрипт с сортировкой.
|
||
- [x] Очистить документацию от сбоев форматирования Markdown ссылок.
|
||
|
||
## 5. Расширение тестов фракций
|
||
- [x] Дописать интеграционные тесты для `get_recent_events`, `get_location` и работы с активами.
|
||
- [x] Расширить тесты логики ходов фракций в `test_wwn_mechanics.py`.
|
||
- [x] Добавлены setup-тесты для перезаписи тестовых файлов фракций (frontmatter и контент) для детерминированности среды.
|
||
- [x] Убедиться, что текущий набор pytest проходит без ошибок (`pytest -v`).
|
||
# План работ и задачи
|
||
|
||
## Исправление ошибок импорта фракций
|
||
- [x] Удалить импорт `vault_query` в `D:/Work/Software_Development/Projects/ttrpg-obsidian-vault/scripts/faction_turns/resolve_faction_turn.py`
|
||
- [x] Удалить импорт `vault_query` в `D:/Work/Software_Development/Projects/ttrpg-obsidian-vault/scripts/faction_turns/propose_faction_turn.py`
|
||
- [x] Заменить вызов `vault_query` на прямые вызовы функций в `D:/Work/Software_Development/Projects/ttrpg-obsidian-vault/scripts/faction_turns/tests/verify_factions.py`
|
||
|
||
## Исправления логики фракций
|
||
- [x] Починить логику `Repair Asset` для ремонта `Base of Influence` (цель может не иметь точного совпадения имени) в файле `resolve_faction_turn.py`
|
||
- [x] Сделать генерацию названий файлов событий (Event files) более читаемой, убрать длинные подчеркивания и дефисы.
|
||
- [✓] Добавить тесты исцеления Base of Influence для обычной и мощной фракций (D:/Work/Software_Development/Projects/ttrpg-obsidian-vault/scripts/faction_turns/tests/test_repair_boi.py)
|
||
- [✓] Запустить и проверить прохождение тестов `pytest`
|