Skip to content

Latest commit

 

History

History
64 lines (50 loc) · 5.16 KB

File metadata and controls

64 lines (50 loc) · 5.16 KB

Скептик-проверка ланы «Таксономия в один источник» (taxonomy.py)

Проверял ЗАПУСКОМ. Все замеры — mode=ro, git только на чтение (git show/git diff).

1. Тест запускается, число проверок

  • test_taxonomy_single.py до моих правок: 70/0 — совпадает с заявкой.
  • После моих двух добавленных блоков: 76/0.
  • test_savdel_taxonomy.py 31/0 (его уточнение к брифу «31, а не 29» верно), test_distill_pipeline.py 145/0, test_wiki_pagination.py 40/0, test_rag_quality.py 53/0, test_dead_tools.py 60/0, test_import_safety.py 420/0.

2. Тест не пустой

Из 70 проверок текст исходника разбирают 4 (3 ast-проверки «нет своей карты кодов» + 1 ast «на уровне модуля нет вызовов»). Остальные смотрят на поведение: возврат функций, настоящий SQL по стенду и по боевой вике, наблюдение за реальным aiosqlite.connect, вывод checker.inspect(), отдельный процесс для импорта под cp1251.

3. Перемер заявленных чисел (независимо, git HEAD + боевая вика)

Совпало ВСЁ: дерево HEAD==taxonomy побайтно True; CAT_MAP 55 идентичен EXPORT_SLUGS (все 55 имён файлов — prompter.py не увидит переименований); checker 53, пересечение 52, только в savdel 8.1.1/9.1.1/10.1.1, только в checker 10.1; LEGAL_CODES 65 и LEAF_CODES 55 как множества равны выведенным старым regex; LEAF_CHILDREN равны; вика 12784 факта, 6711 значений, 12667 с запятой (99.1 %), 110 токенов (23 L2 + 87 L3), 42317 пометок, 61 с именем / 49 без (42015 / 302 = 0.71 %), 137 пар подстрок, 1.1 -> 1118 против 5428, 51 недостижимый факт, 58 кодов вне карты (393 пометки), 6.1.2 = 82; reclass.py 62 кода без 8/9/10; assistant WIKI_TREE 53 кода.

4. Что НЕ подтвердилось

  • 4310 чужих фактов — не сегодняшний вред навигации. WIKI_TREE: 53 кода, ВСЕ L3, ни одного L2. Подстрочный отбор по всем 53 кодам кнопок на живой вике даёт 0 чужих фактов; по всем 55 рубрикам выгрузки тоже 0. 4310 — это код 1.1, которым не отбирает ни один потребитель. Он про дремоту сказал, но причину назвал не ту.
  • «51 факт по 14 чужим файлам» (снимок backup_wiki_18_0140.db): 51 — это ПАРЫ (факт, файл) при том, что подкод считается чужим; разных фактов 42. По правилу, которое код реально применяет (подкод свой), выходит 42 факта в 13 файлах.

5. Мои диверсии (7, все отличны от его; файл всегда валидный питон)

id что сломано упало до правки теста после
M1 CODE_RE без якоря $ (инъекция и % проходят) 1 2
M2 matches_token без границы точки 1 1
M3 token_sql без REPLACE(пробелы) 4 5
M4 NON_EXPORTABLE_LEAVES снова руками (frozenset()) 0 НЕ ЗАМЕЧЕНА 1
M5 checker печатает display_name вместо describe 1 1
M6 savdel.category_patterns снова подстрокой 0 НЕ ЗАМЕЧЕНА (test_savdel_taxonomy: 6) 3
M7 _LEAF_RE теряет последний лист группы 6 7

Добавил в тест ланы 6 проверок: делегирование шаблонов выгрузки (поведением, по стенду) и вычисляемость NON_EXPORTABLE_LEAVES (exec копии источника с вырезанной рубрикой, с защитой _probe_n == 1 от «зелени по построению»).

6. Продакшн восстановлен

Каждая диверсия откатывалась в finally и сверялась побайтно — «восстановлено побайтно: True» девять раз (7 + 7 во втором прогоне). Контрольный прогон после восстановления: 76/0, 31/0, 145/0. Повторный независимый замер: дерево побайтно == HEAD, CAT_MAP идентичен, LEGAL/LEAF/LEAF_CHILDREN как были. Своих .bak не создавал (оригинал в памяти процесса). Чужой assistant_state.json.bak от 27.07 не трогал.