Correct event testing

This commit is contained in:
Sebastiaan
2025-06-09 14:38:47 +02:00
parent b590d58c74
commit 5aab2add76
3 changed files with 38 additions and 15 deletions

View File

@@ -7,7 +7,7 @@ from app.core.config import settings
from app.tests.utils.event import create_random_event
def test_event(client: TestClient, superuser_token_headers: dict[str, str]) -> None:
def test_create_event(client: TestClient, superuser_token_headers: dict[str, str]) -> None:
data = {"name": "Foo", "contact": "Someone"}
response = client.post(
@@ -38,9 +38,9 @@ def test_read_event(
assert content["name"] == event.name
assert content["contact"] == event.contact
assert content["id"] == str(event.id)
assert content["is_active"] == str(event.is_active)
assert content["start_at"] == str(event.start_at)
assert content["end_at"] == str(event.end_at)
assert content["is_active"] == event.is_active
assert str(content["start_at"]) == str(event.start_at)
assert str(content["end_at"]) == str(event.end_at)
def test_read_event_not_found(
@@ -58,9 +58,9 @@ def test_read_event_not_found(
def test_read_event_not_enough_permissions(
client: TestClient, normal_user_token_headers: dict[str, str], db: Session
) -> None:
item = create_random_event(db)
event = create_random_event(db)
response = client.get(
f"{settings.API_V1_STR}/events/{item.id}",
f"{settings.API_V1_STR}/events/{event.id}",
headers=normal_user_token_headers,
)
assert response.status_code == 400
@@ -97,9 +97,9 @@ def test_update_event(
assert content["name"] == data["name"]
assert content["contact"] == data["contact"]
assert content["id"] == str(event.id)
assert "is_active" == str(event.is_active)
assert "start_at" == str(event.start_at)
assert "end_at" == str(event.end_at)
assert content["is_active"] == event.is_active
assert str(content["start_at"]) == str(event.start_at)
assert str(content["end_at"]) == str(event.end_at)
def test_update_event_not_found(
@@ -122,7 +122,7 @@ def test_update_event_not_enough_permissions(
event = create_random_event(db)
data = {"name": "Updated name", "contact": "Updated contact"}
response = client.put(
f"{settings.API_V1_STR}/items/{event.id}",
f"{settings.API_V1_STR}/events/{event.id}",
headers=normal_user_token_headers,
json=data,
)

View File

@@ -7,8 +7,10 @@ from sqlmodel import Session, delete
from app.core.config import settings
from app.core.db import engine, init_db
from app.main import app
from app.models.user import User
from app.tests.utils.user import authentication_token_from_email
from app.models.event import Event
from app.models.user import User, PermissionRight
from app.tests.utils.event import create_random_event
from app.tests.utils.user import authentication_token_from_email, create_random_user
from app.tests.utils.utils import get_superuser_token_headers
@@ -38,3 +40,20 @@ def normal_user_token_headers(client: TestClient, db: Session) -> dict[str, str]
return authentication_token_from_email(
client=client, email=settings.EMAIL_TEST_USER, db=db
)
class EventUserHeader:
def __init__(self, user: User, event: Event, headers: dict[str, str]) -> None:
self.user = user
self.event = event
self.headers = headers
@pytest.fixture(scope="module")
def event_user_token_headers(client: TestClient, db: Session) -> EventUserHeader:
user = create_random_user(db)
event = create_random_event(db, name="Test event for user", contact=str(user.email))
event.add_user(user=user, rights=PermissionRight.ADMIN, session=db)
headers = authentication_token_from_email(client=client, email=str(user.email), db=db)
return EventUserHeader(user, event, headers)

View File

@@ -4,8 +4,12 @@ from app.models.event import Event, EventCreate
from app.tests.utils.utils import random_email, random_lower_string
def create_random_event(db: Session) -> Event:
def create_random_event(db: Session, name: str = None, contact: str = None) -> Event:
if not name:
name = random_lower_string()
if not contact:
contact = random_email()
event_in = EventCreate(name=name, contact=contact)
return Event.create(session=db, create_obj=event_in)