-
Andrey Azeev authored
Добавлено 55 тестов (110 passed вместо 55). Покрыты: - tests/utils/test_responses.py — JSONResponseUTF8 (media_type, наследование, тело ответа). - tests/utils/test_exception_handlers.py — register_exception_handlers: 422 RequestValidationError формат с deatails, 400/404 StarletteHTTPException через JSONResponseUTF8, Content-Type charset=utf-8. - tests/utils/test_middleware.py — MetricsSecurityMiddleware (pure-ASGI): 403 без заголовка, 200 с заголовком, пропуск non-/metrics, lifespan-scope не падает; register_middlewares smoke. - tests/utils/test_prometheus_metrics.py — smoke регистрации Instrumentator + /metrics endpoint. - tests/routers/test_discount_router.py — create_message_discount / send_message_confirmation_discount (success / failure / missing-key); интеграционные 200/400/422 через TestClient + dependency_overrides. - tests/routers/test_register_router.py — RegisterService.send_new_site_user (unit + content asserts); 200/422 интеграционные. - tests/bot/test_errors_router.py — _chat_id helper; handle_forbidden (return True + WARNING); handle_bad_request parametrized по _BAD_REQUEST_SILENCED + unhandled BadRequest → False + logger.exception. pyproject.toml: --cov-fail-under=70 → 80 (канон P13 выполнен). Остаточные дыры — необязательные, переведены в CHANGELOG TODO (опциональный gate 90%): src/schemas/filters/private.py, bot_routers/discount/utils.py, bot_routers/support_rating/utils.py, micro_services_api/promotion_api.py, routers/bot/utils.py. 110 passed, coverage 80.05%.
b3a84a43Andrey Azeev authoredДобавлено 55 тестов (110 passed вместо 55). Покрыты: - tests/utils/test_responses.py — JSONResponseUTF8 (media_type, наследование, тело ответа). - tests/utils/test_exception_handlers.py — register_exception_handlers: 422 RequestValidationError формат с deatails, 400/404 StarletteHTTPException через JSONResponseUTF8, Content-Type charset=utf-8. - tests/utils/test_middleware.py — MetricsSecurityMiddleware (pure-ASGI): 403 без заголовка, 200 с заголовком, пропуск non-/metrics, lifespan-scope не падает; register_middlewares smoke. - tests/utils/test_prometheus_metrics.py — smoke регистрации Instrumentator + /metrics endpoint. - tests/routers/test_discount_router.py — create_message_discount / send_message_confirmation_discount (success / failure / missing-key); интеграционные 200/400/422 через TestClient + dependency_overrides. - tests/routers/test_register_router.py — RegisterService.send_new_site_user (unit + content asserts); 200/422 интеграционные. - tests/bot/test_errors_router.py — _chat_id helper; handle_forbidden (return True + WARNING); handle_bad_request parametrized по _BAD_REQUEST_SILENCED + unhandled BadRequest → False + logger.exception. pyproject.toml: --cov-fail-under=70 → 80 (канон P13 выполнен). Остаточные дыры — необязательные, переведены в CHANGELOG TODO (опциональный gate 90%): src/schemas/filters/private.py, bot_routers/discount/utils.py, bot_routers/support_rating/utils.py, micro_services_api/promotion_api.py, routers/bot/utils.py. 110 passed, coverage 80.05%.
Loading