zapretgui/tests/test_blockcheck_googlevideo_bare_host.py
loop-uh 97ed51f2b3
All checks were successful
Zapret source guards / validate (push) Successful in 3s
Заменять голый googlevideo.com на rr-хост и запрещать его в доменах
Apex googlevideo.com — не видеосервер, его прямая проверка всегда падает.
Сканер стратегий теперь при старте подставляет свежий rr*-хост через
существующий discovery (при неудаче — понятная ошибка вместо ложных FAIL),
а в пользовательские домены BlockCheck голый googlevideo.com не добавляется:
InfoBar объясняет, что актуальный видеосервер проверяется автоматически.
Сохранённый ранее apex пропускается при сборке целей.

Попутно починены импорты удалённого targets._normalize_domain (f88541fa):
добавление пользовательского домена падало с ImportError, а нормализация
цели сканера не срезала схему https://. Оба места переведены на hosts.host_of.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-11 17:35:03 +03:00

43 lines
1.3 KiB
Python

"""Голый googlevideo.com распознаётся во всех формах записи."""
from __future__ import annotations
import sys
import unittest
from pathlib import Path
PROJECT_SRC = Path(__file__).resolve().parents[1] / "src"
if str(PROJECT_SRC) not in sys.path:
sys.path.insert(0, str(PROJECT_SRC))
from blockcheck.googlevideo_discovery import is_bare_googlevideo_host # noqa: E402
class BareGoogleVideoHostTests(unittest.TestCase):
def test_bare_hosts_detected(self) -> None:
for value in (
"googlevideo.com",
"www.googlevideo.com",
"https://googlevideo.com",
"https://googlevideo.com/watch?v=1",
"GOOGLEVIDEO.COM.",
"googlevideo.com:443",
):
with self.subTest(value=value):
self.assertTrue(is_bare_googlevideo_host(value))
def test_real_video_and_service_hosts_pass(self) -> None:
for value in (
"rr5---sn-c0q7lnz7.googlevideo.com",
"redirector.googlevideo.com",
"youtube.com",
"",
None,
):
with self.subTest(value=value):
self.assertFalse(is_bare_googlevideo_host(value))
if __name__ == "__main__":
unittest.main()