# 2026-03-21 — chaos-badparams: проверяет что функция не падает на мусорных входных данных. # Принимает type=missing|wrong_type|huge|negative|zero и возвращает safe-ответ. # Тестирует: устойчивость к "тупому юзеру" — никакого 500 на плохих входных данных. import json _MAX_N = 10_000 def validate(event): errors = [] results = {} # n: должно быть int от 1 до MAX_N raw_n = event.get("n") try: n = int(raw_n) if n <= 0: errors.append(f"n must be > 0, got {n}") n = 1 elif n > _MAX_N: errors.append(f"n capped from {n} to {_MAX_N}") n = _MAX_N except (TypeError, ValueError): errors.append(f"n is not a valid int: {repr(raw_n)}, using default 1") n = 1 results["n"] = n # name: обрезаем до 100 символов raw_name = event.get("name", "") if not isinstance(raw_name, str): raw_name = str(raw_name) errors.append("name was not a string, converted") name = raw_name[:100] results["name"] = name # flag: любое "truthy" значение raw_flag = event.get("flag", False) flag = raw_flag in (True, "true", "1", 1, "yes") results["flag"] = flag return {"ok": len(errors) == 0, "errors": errors, "results": results}