import pytest from src.services.vsp_service import vsp_status_to_is_active @pytest.mark.parametrize("status, expected", [("active", True), ("closed", False), ("all", None)]) def test_vsp_status_to_is_active(status, expected): assert vsp_status_to_is_active(status) is expected # --- выгрузка и dropdown (AURORA-1883, задача 2) --- from datetime import date from unittest.mock import AsyncMock, MagicMock from src.db.models import UserRoleEnum from src.services.vsp_service import VSPService def _admin(): user = MagicMock() user.id = 1 user.role_id = UserRoleEnum.ADMIN return user def _dropdown_service() -> VSPService: service = VSPService.__new__(VSPService) service.vsp_repo = MagicMock() service.vsp_repo.get_list = AsyncMock(return_value=(0, [])) service.form_repo = MagicMock() service.form_repo.get = AsyncMock(return_value=None) service._get_scoped_ssp_ids = AsyncMock(return_value=None) service._sync_closed_records = AsyncMock() return service async def test_get_dropdown_include_inactive_passes_none(): service = _dropdown_service() await service.get_dropdown(user=_admin(), ssp_id=2, include_inactive=True, with_count=True) assert service.vsp_repo.get_list.await_args.kwargs["is_active"] is None async def test_get_dropdown_default_active_only(): service = _dropdown_service() await service.get_dropdown(user=_admin(), ssp_id=2, with_count=True) assert service.vsp_repo.get_list.await_args.kwargs["is_active"] is True async def test_export_xlsx_status_closed(): service = VSPService.__new__(VSPService) service.get_list = AsyncMock(return_value=[]) await service.export_xlsx(user=_admin(), status="closed", close_date_start=date(2021, 1, 1)) kwargs = service.get_list.await_args.kwargs assert kwargs["is_active"] is False assert kwargs["close_date_start"] == date(2021, 1, 1) assert kwargs["close_date_end"] is None