Skip to content
  • Andrey Azeev's avatar
    b3a84a43
    test: поднять coverage с 72.32% до 80.05%; cov-fail-under=80 · b3a84a43
    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%.
    b3a84a43
    test: поднять coverage с 72.32% до 80.05%; cov-fail-under=80
    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%.
Loading