import pytest @pytest.mark.asyncio async def test_get_membership_returns_404_for_unknown_id(api_client): response = await api_client.get("/api/v1/memberships/999999999") assert response.status_code == 404 assert response.json()["detail"] == "Membership not found" @pytest.mark.asyncio async def test_patch_membership_returns_404_for_unknown_id(api_client): response = await api_client.patch( "/api/v1/memberships/999999999", json={"is_gsz": True}, ) assert response.status_code == 404 assert response.json()["detail"] == "Membership not found" @pytest.mark.asyncio async def test_delete_membership_returns_404_for_unknown_id(api_client): response = await api_client.delete("/api/v1/memberships/999999999") assert response.status_code == 404 assert response.json()["detail"] == "Membership not found" @pytest.mark.asyncio async def test_create_membership_returns_422_for_missing_required_fields(api_client): response = await api_client.post( "/api/v1/memberships", json={"is_gsk": True, "is_gsz": False}, ) assert response.status_code == 422 @pytest.mark.asyncio async def test_create_membership_returns_422_for_invalid_share_pct(api_client): response = await api_client.post( "/api/v1/memberships", json={ "group_id": "GK001", "org_id": 1, "share_pct": 150, }, ) assert response.status_code == 422 @pytest.mark.asyncio async def test_patch_membership_returns_422_for_invalid_share_pct(api_client): response = await api_client.patch( "/api/v1/memberships/1", json={"share_pct": -1}, ) assert response.status_code == 422 @pytest.mark.asyncio async def test_create_membership_returns_409_for_invalid_foreign_keys(api_client): response = await api_client.post( "/api/v1/memberships", json={ "group_id": "UNKNOWN_GROUP", "org_id": 999999999, "is_gsk": True, "is_gsz": False, }, ) assert response.status_code == 409 assert response.json()["detail"] == "нарушение целостности данных в БД"