Add ai generated tests
This commit is contained in:
68
test/test_services/test_group_manager.py
Normal file
68
test/test_services/test_group_manager.py
Normal file
@@ -0,0 +1,68 @@
|
||||
import pytest
|
||||
from fastapi import status
|
||||
|
||||
|
||||
def test_create_group(client, auth_headers):
|
||||
"""Test creating a new group."""
|
||||
group_data = {"name": "New Test Group"}
|
||||
|
||||
response = client.post("/groups/", json=group_data, headers=auth_headers)
|
||||
assert response.status_code == 200
|
||||
|
||||
data = response.json()
|
||||
assert data["name"] == "New Test Group"
|
||||
assert "id" in data
|
||||
|
||||
|
||||
def test_create_duplicate_group(client, auth_headers, test_group):
|
||||
"""Test creating a group with a duplicate name."""
|
||||
group_data = {"name": test_group.name}
|
||||
|
||||
response = client.post("/groups/", json=group_data, headers=auth_headers)
|
||||
# This should fail due to unique constraint
|
||||
assert response.status_code == 422 # Validation error
|
||||
|
||||
|
||||
def test_get_groups(client, auth_headers, test_group):
|
||||
"""Test retrieving all groups."""
|
||||
response = client.get("/groups/", headers=auth_headers)
|
||||
assert response.status_code == 200
|
||||
|
||||
groups = response.json()
|
||||
assert len(groups) >= 1
|
||||
|
||||
group_names = [group["name"] for group in groups]
|
||||
assert test_group.name in group_names
|
||||
|
||||
|
||||
def test_delete_group(client, auth_headers, test_group):
|
||||
"""Test deleting a group."""
|
||||
response = client.delete(f"/groups/{test_group.id}", headers=auth_headers)
|
||||
assert response.status_code == 200
|
||||
assert "deleted successfully" in response.json()["message"].lower()
|
||||
|
||||
# Verify group is deleted
|
||||
response = client.get("/groups/", headers=auth_headers)
|
||||
groups = response.json()
|
||||
assert not any(group["id"] == test_group.id for group in groups)
|
||||
|
||||
|
||||
def test_delete_nonexistent_group(client, auth_headers):
|
||||
"""Test deleting a non-existent group."""
|
||||
response = client.delete("/groups/99999", headers=auth_headers)
|
||||
assert response.status_code == 404
|
||||
|
||||
|
||||
def test_group_operations_by_non_admin(client, user_auth_headers):
|
||||
"""Test that non-admin users cannot perform group operations."""
|
||||
# Try to create a group
|
||||
response = client.post(
|
||||
"/groups/",
|
||||
json={"name": "test"},
|
||||
headers=user_auth_headers
|
||||
)
|
||||
assert response.status_code == 403
|
||||
|
||||
# Try to get groups
|
||||
response = client.get("/groups/", headers=user_auth_headers)
|
||||
assert response.status_code == 403
|
||||
Reference in New Issue
Block a user