79 lines
2.2 KiB
Python
79 lines
2.2 KiB
Python
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"] == "нарушение целостности данных в БД"
|