Files
hockey_new/VALIDATION_KHL_CAREER_RU.md
2026-09-27 00:25:40 +03:00

58 lines
6.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Проверка обновления 2026.09.27.1
## Результаты
- Полный Python-прогон после основных изменений: **432 passed, 40 failed**. Набор 40 не прошедших тестов совпадает с ранее зафиксированным набором v3; новых падений в этом прогоне нет. Их разбор сохранён в `PREVIOUS_40_FAILURES_RU.md`.
- После дополнительных проверок отказов и отсутствующих записей: целевая группа **24 passed**, включая **18 новых функциональных тестов** КХЛ/карьеры. Это отдельный прогон, не повтор всего набора.
- Старый тест имени обновлён под явное требование «Имя Фамилия». Статический тест BUILD45 приведён к обработчику вкладки v4, который захватывает `id` при создании переиспользуемой кнопки. Само переключение также проверялось через настоящий JS приложения.
- Проверка синтаксиса Python, основного JS и встроенного JS интерфейса КХЛ — успешно.
## Проверки данных и доступа
- Извлечение имени при наличии посторонних заголовков навигации.
- Расшифровка исходных многоуровневых таблиц тренеров и судей, фильтрация ложных сезонов/клубов.
- Восстановление имён из списков без чтения персональных страниц и без потери статистики.
- Ошибки сети/HTTP, остановка запросов после блокировки, сохранение прежнего файла при полном отказе, сохранение остальных людей при частичном обновлении.
- Сохранение кэша матчей с явной отметкой устаревания; повторное чтение повреждённого файла не стирает уже загруженную базу.
- Завершение фонового задания даже при ошибке перечитывания данных.
- Импорт идемпотентен; ошибка в середине импорта откатывает изменения.
- Заявка матча, полный состав, исключение неактивных/другого турнира, отображение игрока без записи в справочнике.
- Однофамильцы и конфликт даты рождения не приводят к подстановке чужой карьеры.
- Проценты считаются по суммарным величинам; недостающий показатель остаётся неизвестным.
- Зритель получает карьеру и CSV без изменения владельца/ревизии матча. Без входа — HTTP 401.
- CSV содержит весь выбранный состав, метаданные источника и защиту текстовых значений от формул.
## Проверка на всей исходной базе
В тестовую SQLite через тот же сервис SQLAlchemy импортировано:
| Раздел | Записей |
| --- | ---: |
| Игроки | 4 264 |
| Тренеры | 239 |
| Судьи | 45 |
| Всего | 4 548 |
Первый импорт в этой среде занял около **4,55 с**; повторный при неизменившихся файлах — около **0,001 с**, без перезаписи записей. Это измерение локального тестового импорта, не обещание скорости вашей PostgreSQL или сети. Файл всей тестовой БД — около 11,3 МБ.
В исходной базе у всех 4 264 игроков вместо имени сохранён текст навигации. Нормальное имя невозможно восстановить из таких строк без источника; для этого добавлена отдельная загрузка имён со списков КХЛ.
## Интерфейс
Через jsdom, фактический код приложения, FastAPI и тестовую БД проверены:
- новая подвкладка «Карьера», загрузка заявки и полного состава;
- поиск, карточка игрока, выгрузка CSV, отсутствие команд изменения матча при работе с карьерой;
- списки имён КХЛ, понятные карточки тренеров/судей;
- обновление уже открытой карточки после перечитывания файла;
- понятная ошибка вместо исключения JSON-парсера при HTML-ответе сервера.
В обоих сценариях ошибок JavaScript не обнаружено. jsdom не измеряет реальное расположение элементов: визуальная проверка в Chromium/Windows не проводилась.
## Ограничения
- Живую выгрузку KHL.ru подтвердить не удалось: прямой запрос из среды проверки завершился таймаутом, доступ к страницам через инструмент поиска — HTTP 403. Это внешнее ограничение не скрывается и не обходится.
- Нет подключения к вашей PostgreSQL, Windows и реальному vMix. Удалённое развёртывание не выполнялось.
- Таблица «Карьера» отражает сохранённые данные КХЛ. «Полный состав» основан на активных записях выбранного турнира в основной БД; актуальность зависит от последней синхронизации состава.
- При изменении разметки сайта нераспознанные строки помечаются; неподтверждённые значения не подменяются нулями.