Add ActivityLog fixtures and tests for logging activities

Introduce a new pytest fixture for creating ActivityLog entries. Add comprehensive tests to verify ActivityLog creation and logging functionality, including user, event, and guest activities. Ensure proper test coverage for key methods and representations.
This commit is contained in:
2025-02-28 15:06:50 +01:00
parent d442182ed0
commit b8c7d63d91
2 changed files with 145 additions and 8 deletions

View File

@@ -1,10 +1,13 @@
# tests/conftest.py
import pytest
import uuid
from datetime import datetime, timezone
import pytest
from app.models import GiftItem, GiftStatus, GiftPriority, RSVP, RSVPStatus, EventMedia, MediaType, MediaPurpose, \
EventTheme, Guest, GuestStatus, ActivityType, ActivityLog
from app.models.user import User
from app.utils.test_utils import setup_test_db, teardown_test_db
from app.models import GiftItem, GiftStatus, GiftPriority, RSVP, RSVPStatus, EventMedia, MediaType, MediaPurpose, \
EventTheme, Guest, GuestStatus
@pytest.fixture(scope="function")
@@ -139,10 +142,6 @@ def event_theme_fixture(db_session):
db_session.commit()
return event_theme
import uuid
from datetime import datetime, timezone
from app.models.guest import Guest, GuestStatus
@pytest.fixture
def guest_fixture(db_session, mock_user):
@@ -169,4 +168,28 @@ def guest_fixture(db_session, mock_user):
)
db_session.add(guest)
db_session.commit()
return guest
return guest
@pytest.fixture
def activity_log_fixture(db_session, mock_user, guest_fixture):
"""
Fixture to create and return a default ActivityLog entry.
"""
activity_log_entry = ActivityLog(
id=uuid.uuid4(),
activity_type=ActivityType.USER_LOGIN,
description="User successfully logged in.",
event_id=None,
user_id=mock_user.id,
guest_id=None,
target_id=None,
target_type=None,
ip_address="192.168.1.1",
user_agent="Mozilla/5.0",
activity_data={"extra_info": "Login from web app"},
created_at=datetime.now(timezone.utc)
)
db_session.add(activity_log_entry)
db_session.commit()
return activity_log_entry