58 lines
6.7 KiB
Markdown
58 lines
6.7 KiB
Markdown
# Проверка обновления 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. Удалённое развёртывание не выполнялось.
|
||
- Таблица «Карьера» отражает сохранённые данные КХЛ. «Полный состав» основан на активных записях выбранного турнира в основной БД; актуальность зависит от последней синхронизации состава.
|
||
- При изменении разметки сайта нераспознанные строки помечаются; неподтверждённые значения не подменяются нулями.
|