All checks were successful
Zapret source guards / validate (push) Successful in 5s
Проверкой и установкой теперь владеют сервисы, страница «Серверы» только показывает. Новые модули: updater/check (flow, sources, service), updater/download (downloader, flow, service), dpi_guard, page_actions. Удалены update_page_runtime (1700 строк), update_pipeline, server_status_workers, settings_workers, retry_workers; планы карточек перенесены в updater/ui/plans.py. - DPI останавливается и запускается обратно только через DpiGuard: возврат в finally, запуск в главном потоке, не после запуска установщика и не при выходе из программы. Во время проверки новую не начать. - Номер проверки у координатора закрывается всегда, даже при сбое. - Кнопка установки видна после «Позже» при запуске, источник выпуска доходит до карточки, тексты этапов не теряются после скачивания, установка после подтверждения начинается без таймера. - Скачивание: куски сразу на своё место в закрытом каталоге, при сбое одного куска остальные встают, размер на сервере сверяется до скачивания, SHA-256 проверяется у каждого источника, при полном диске или занятом файле зеркала не перебираются; повтор без DPI при сетевом сбое. - Переключатель автопроверки и открытие канала — вне главного потока, записывается последнее значение.
43 lines
1.5 KiB
Python
43 lines
1.5 KiB
Python
from __future__ import annotations
|
|
|
|
import unittest
|
|
|
|
from updater.ui import plans as update_page_plans
|
|
|
|
|
|
class UpdaterChangelogProgressPlanTests(unittest.TestCase):
|
|
def test_download_speed_and_eta_stay_visible_between_samples(self) -> None:
|
|
first = update_page_plans.build_changelog_progress_plan(
|
|
percent=50,
|
|
done_bytes=50 * 1024 * 1024,
|
|
total_bytes=100 * 1024 * 1024,
|
|
last_speed_time=0.0,
|
|
last_speed_bytes=0,
|
|
smoothed_speed=0.0,
|
|
language="ru",
|
|
now=2.0,
|
|
progress_bar_visible=True,
|
|
)
|
|
|
|
second = update_page_plans.build_changelog_progress_plan(
|
|
percent=52,
|
|
done_bytes=52 * 1024 * 1024,
|
|
total_bytes=100 * 1024 * 1024,
|
|
last_speed_time=first.last_speed_time,
|
|
last_speed_bytes=first.last_speed_bytes,
|
|
smoothed_speed=first.smoothed_speed,
|
|
download_speed_kb=first.download_speed_kb,
|
|
download_eta_seconds=first.download_eta_seconds,
|
|
language="ru",
|
|
now=2.2,
|
|
progress_bar_visible=True,
|
|
)
|
|
|
|
self.assertNotEqual(second.speed_label_text, "Скорость: —")
|
|
self.assertNotEqual(second.eta_label_text, "Осталось: —")
|
|
self.assertEqual(second.download_speed_kb, first.download_speed_kb)
|
|
self.assertEqual(second.download_eta_seconds, first.download_eta_seconds)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|