All checks were successful
Zapret source guards / validate (push) Successful in 9s
- Чужой сертификат по адресу из DNS теперь перепроверяется тем же запросом к настоящему адресу сайта (как контроль у OONI). Если и там чужой — HTTPS подменяет антивирус, прокси или сеть, а не DNS: это «не узнали», а не «подмена». Без эталона чужой сертификат тоже ничего не доказывает. - Сводка итога вынесена из виджетов в dns_check_plans; строка состояния строится из неё: при сбое и остановке больше нет зелёного «Проверка завершена», «Сохранить» доступно, только когда есть что сохранять. - Все адреса заданы на компьютере или в сети (hosts, VPN fake-ip, домашний фильтр) — не «Ваш DNS честный», а «адреса берутся не у провайдера»; такой домен подписан «Адрес не от провайдера», а не «Адрес из файла hosts». - Проверка, где не удалось проверить ни один адрес, пишется в историю как «не узнали», а не предупреждение. - Удалены неиспользуемые create_dns_check_worker (к тому же сломанный) и create_dns_check_save_worker в dns/commands.py, план очистки потока. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
38 lines
1.8 KiB
Python
38 lines
1.8 KiB
Python
"""Итог вкладки «DNS подмена» один: из него и панель, и строка состояния, и история."""
|
|
|
|
from __future__ import annotations
|
|
|
|
import unittest
|
|
|
|
from dns.dns_check_plans import build_finish_plan, summarize_dns_results
|
|
|
|
|
|
class FinishPlanTests(unittest.TestCase):
|
|
def test_failed_or_stopped_check_is_not_green(self) -> None:
|
|
failed = build_finish_plan({})
|
|
stopped = build_finish_plan({"stopped": True})
|
|
self.assertEqual((failed.status_tone, failed.save_enabled), ("error", False))
|
|
self.assertEqual(stopped.status_tone, "muted")
|
|
self.assertNotIn("✅", failed.status_text + stopped.status_text)
|
|
|
|
def test_spoofing_and_partial_and_ok(self) -> None:
|
|
self.assertEqual(build_finish_plan({"domains": {"a": {"state": "spoofed"}}}).status_tone, "error")
|
|
self.assertEqual(build_finish_plan({"domains": {"a": {"state": "unknown"}}}).status_tone, "warning")
|
|
self.assertEqual(build_finish_plan({"domains": {"a": {"state": "ok"}}}).status_tone, "success")
|
|
|
|
def test_addresses_all_set_locally_prove_nothing_about_the_provider(self) -> None:
|
|
summary = summarize_dns_results({"domains": {"a": {"state": "local"}, "b": {"state": "local"}}})
|
|
self.assertEqual(summary["kind"], "partial")
|
|
self.assertNotIn("честный", summary["title"])
|
|
|
|
def test_history_of_a_check_that_learned_nothing_is_unknown(self) -> None:
|
|
from diagnostics.history import dns_check_entry
|
|
|
|
entry = dns_check_entry({"domains": {"a": {"state": "unknown"}, "b": {"state": "unknown"}}})
|
|
self.assertEqual(entry["level"], "unknown")
|
|
partly = dns_check_entry({"domains": {"a": {"state": "unknown"}, "b": {"state": "ok"}}})
|
|
self.assertEqual(partly["level"], "warn")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|