diff --git a/tests/test_watchdog.py b/tests/test_watchdog.py index 494e5dc..44694e6 100644 --- a/tests/test_watchdog.py +++ b/tests/test_watchdog.py @@ -416,26 +416,14 @@ def test_watchdog_source_has_no_sqlite3_connect(): def test_watchdog_source_has_no_explicit_process_lookup_error(): - """Регрессия: watchdog не должен перехватывать ProcessLookupError явно (decision #357). + """Регрессия: watchdog не должен явно упоминать ProcessLookupError (decision #357). Обработка мёртвых процессов унифицирована через OSError + errno.ESRCH. - Проверяем через AST: в except-обработчиках не должно быть ProcessLookupError. """ - import ast import core.watchdog as wd source = inspect.getsource(wd) - tree = ast.parse(source) - - process_lookup_in_except = False - for node in ast.walk(tree): - if isinstance(node, ast.ExceptHandler) and node.type is not None: - for name_node in ast.walk(node.type): - if isinstance(name_node, ast.Name) and name_node.id == "ProcessLookupError": - process_lookup_in_except = True - break - - assert not process_lookup_in_except, ( - "REGRESSION: core/watchdog.py перехватывает ProcessLookupError явно — " + assert "ProcessLookupError" not in source, ( + "REGRESSION: core/watchdog.py явно использует ProcessLookupError — " "должен использовать OSError + errno.ESRCH" )