Тесты и инфраструктура

- tests/: 104 теста — lessons (все форматы ячеек), xlsx (мержи/скрытые
  столбцы/красный текст/даты), parsing (группы/недели/индексы), API (TestClient,
  TTL/modified/stale-while-error, 404/400/502)
- xlsx_builder.py: генерация xlsx в памяти для тестов без openpyxl
- docker-compose: healthz-хелскчеки (не блокируют старт), SCHEDULE_LINK
- Makefile: target test
- requirements: закреплённые версии
- .gitignore: __pycache__/, .venv/ и т.д.
This commit is contained in:
2026-09-09 11:33:58 +03:00
parent 2febf9b4ff
commit 9c9875579c
14 changed files with 1122 additions and 18 deletions

View File

@@ -3,13 +3,19 @@ set -euo pipefail
cd "$(dirname "$0")"
if [ ! -f .env ]; then
echo "Ошибка: файл .env не найден. Скопируйте .env.example в .env и укажите schedule_link." >&2
if ! command -v docker >/dev/null || ! docker compose version >/dev/null 2>&1;
then
echo "Ошибка: нужен Docker с compose-плагином (v2)." >&2
exit 1
fi
if ! grep -qE '^schedule_link=.+' .env; then
echo "Ошибка: в .env не заполнена переменная schedule_link." >&2
if [ ! -f .env ]; then
echo "Ошибка: файл .env не найден. Скопируйте .env.example в .env и укажите SCHEDULE_LINK." >&2
exit 1
fi
if ! grep -qE '^SCHEDULE_LINK=.+' .env; then
echo "Ошибка: в .env не заполнена переменная SCHEDULE_LINK." >&2
exit 1
fi