Refactor event API and extend authentication utilities
All checks were successful
Build and Push Docker Images / changes (push) Successful in 6s
Build and Push Docker Images / build-backend (push) Successful in 55s
Build and Push Docker Images / build-frontend (push) Has been skipped

Refactored the event API routes to improve error handling, add logging, and provide enhanced response structures with pagination. Updated tests to use new fixtures and include additional authentication utilities to facilitate testing with FastAPI's dependency injection. Also resolved issues with timezone awareness in event schemas.
This commit is contained in:
2025-03-09 16:04:51 +01:00
parent fe2bcbd6e7
commit c2cdc3c110
7 changed files with 466 additions and 96 deletions

View File

@@ -28,23 +28,23 @@ def test_create_event(db_session, mock_user):
assert event.created_by == mock_user.id
def test_get_event(db_session, event_fixture):
def test_get_event(db_session, mock_event):
"""Test retrieving an event by ID."""
stored_event = crud_event.get(db=db_session, id=event_fixture.id)
stored_event = crud_event.get(db=db_session, id=mock_event.id)
assert stored_event
assert stored_event.id == event_fixture.id
assert stored_event.title == event_fixture.title
assert stored_event.id == mock_event.id
assert stored_event.title == mock_event.title
def test_get_event_by_slug(db_session, event_fixture):
def test_get_event_by_slug(db_session, mock_event):
"""Test retrieving an event by slug."""
stored_event = crud_event.get_by_slug(db=db_session, slug=event_fixture.slug)
stored_event = crud_event.get_by_slug(db=db_session, slug=mock_event.slug)
assert stored_event
assert stored_event.id == event_fixture.id
assert stored_event.slug == event_fixture.slug
assert stored_event.id == mock_event.id
assert stored_event.slug == mock_event.slug
def test_get_user_events(db_session, event_fixture, mock_user):
def test_get_user_events(db_session, mock_event, mock_user):
"""Test retrieving all events for a specific user."""
events = crud_event.get_user_events(
db=db_session,
@@ -53,10 +53,10 @@ def test_get_user_events(db_session, event_fixture, mock_user):
limit=100
)
assert len(events) > 0
assert any(event.id == event_fixture.id for event in events)
assert any(event.id == mock_event.id for event in events)
def test_update_event(db_session, event_fixture):
def test_update_event(db_session, mock_event):
"""Test updating an event."""
update_data = EventUpdate(
title="Updated Birthday Party",
@@ -64,18 +64,18 @@ def test_update_event(db_session, event_fixture):
)
updated_event = crud_event.update(
db=db_session,
db_obj=event_fixture,
db_obj=mock_event,
obj_in=update_data
)
assert updated_event.title == "Updated Birthday Party"
assert updated_event.description == "Updated description"
def test_delete_event(db_session, event_fixture):
def test_delete_event(db_session, mock_event):
"""Test deleting an event."""
event = crud_event.remove(db=db_session, id=event_fixture.id)
assert event.id == event_fixture.id
deleted_event = crud_event.get(db=db_session, id=event_fixture.id)
event = crud_event.remove(db=db_session, id=mock_event.id)
assert event.id == mock_event.id
deleted_event = crud_event.get(db=db_session, id=mock_event.id)
assert deleted_event is None
@@ -115,11 +115,11 @@ def test_get_upcoming_events(db_session):
assert event_date >= current_time
def test_get_public_event(db_session, event_fixture):
def test_get_public_event(db_session, mock_event):
"""Test retrieving a public event."""
public_event = crud_event.get_public_event(
db=db_session,
slug=event_fixture.slug
slug=mock_event.slug
)
assert public_event is not None
assert public_event.is_public is True