feat: Implement MFA authentication, add ride statistics model, and update various services, APIs, and tests across the application.

This commit is contained in:
pacnpal
2025-12-28 17:32:53 -05:00
parent aa56c46c27
commit c95f99ca10
452 changed files with 7948 additions and 6073 deletions

View File

@@ -1,6 +1,8 @@
import pytest
import contextlib
import tempfile
from pathlib import Path
import pytest
from playwright.sync_api import Page
@@ -212,9 +214,10 @@ def admin_page(page: Page, live_server, setup_test_data):
def submission_pending(db):
"""Create a pending EditSubmission for FSM testing."""
from django.contrib.auth import get_user_model
from django.contrib.contenttypes.models import ContentType
from apps.moderation.models import EditSubmission
from apps.parks.models import Park
from django.contrib.contenttypes.models import ContentType
User = get_user_model()
@@ -246,19 +249,18 @@ def submission_pending(db):
yield submission
# Cleanup
try:
with contextlib.suppress(Exception):
submission.delete()
except Exception:
pass
@pytest.fixture
def submission_approved(db):
"""Create an approved EditSubmission for FSM testing."""
from django.contrib.auth import get_user_model
from django.contrib.contenttypes.models import ContentType
from apps.moderation.models import EditSubmission
from apps.parks.models import Park
from django.contrib.contenttypes.models import ContentType
User = get_user_model()
@@ -285,10 +287,8 @@ def submission_approved(db):
yield submission
try:
with contextlib.suppress(Exception):
submission.delete()
except Exception:
pass
@pytest.fixture
@@ -322,9 +322,10 @@ def park_closed_temp(db):
@pytest.fixture
def park_closed_perm(db):
"""Create a permanently closed Park for FSM testing."""
from tests.factories import ParkFactory
from datetime import date, timedelta
from tests.factories import ParkFactory
park = ParkFactory(
name="FSM Test Park Closed Perm",
slug="fsm-test-park-closed-perm",
@@ -368,9 +369,10 @@ def ride_sbno(db, park_operating):
@pytest.fixture
def ride_closed_perm(db, park_operating):
"""Create a permanently closed Ride for FSM testing."""
from tests.factories import RideFactory
from datetime import date, timedelta
from tests.factories import RideFactory
ride = RideFactory(
name="FSM Test Ride Closed Perm",
slug="fsm-test-ride-closed-perm",
@@ -386,6 +388,7 @@ def ride_closed_perm(db, park_operating):
def queue_item_pending(db):
"""Create a pending ModerationQueue item for FSM testing."""
from django.contrib.auth import get_user_model
from apps.moderation.models import ModerationQueue
User = get_user_model()
@@ -406,16 +409,15 @@ def queue_item_pending(db):
yield queue_item
try:
with contextlib.suppress(Exception):
queue_item.delete()
except Exception:
pass
@pytest.fixture
def bulk_operation_pending(db):
"""Create a pending BulkOperation for FSM testing."""
from django.contrib.auth import get_user_model
from apps.moderation.models import BulkOperation
User = get_user_model()
@@ -437,10 +439,8 @@ def bulk_operation_pending(db):
yield operation
try:
with contextlib.suppress(Exception):
operation.delete()
except Exception:
pass
# =============================================================================