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

@@ -4,20 +4,19 @@ Tests for ParkMediaService.
Following Django styleguide pattern: test__<context>__<action>__<expected_outcome>
"""
from unittest.mock import Mock, patch
import pytest
from unittest.mock import Mock, patch, MagicMock
from django.test import TestCase
from django.core.files.uploadedfile import SimpleUploadedFile
from django.test import TestCase
from apps.parks.services.media_service import ParkMediaService
from apps.parks.models import ParkPhoto
from apps.parks.services.media_service import ParkMediaService
from tests.factories import (
ParkFactory,
ParkPhotoFactory,
UserFactory,
StaffUserFactory,
CloudflareImageFactory,
UserFactory,
)
@@ -114,7 +113,7 @@ class TestParkMediaServiceGetParkPhotos(TestCase):
def test__get_park_photos__primary_first__orders_primary_first(self):
"""Test get_park_photos with primary_first orders primary photos first."""
park = ParkFactory()
non_primary = ParkPhotoFactory(park=park, is_primary=False, is_approved=True)
ParkPhotoFactory(park=park, is_primary=False, is_approved=True)
primary = ParkPhotoFactory(park=park, is_primary=True, is_approved=True)
result = ParkMediaService.get_park_photos(park, primary_first=True)

View File

@@ -4,22 +4,21 @@ Tests for RideService.
Following Django styleguide pattern: test__<context>__<action>__<expected_outcome>
"""
from unittest.mock import Mock, patch
import pytest
from unittest.mock import Mock, patch, MagicMock
from django.test import TestCase
from django.core.exceptions import ValidationError
from apps.rides.services import RideService
from apps.rides.models import Ride
from apps.rides.services import RideService
from tests.factories import (
DesignerCompanyFactory,
ManufacturerCompanyFactory,
ParkAreaFactory,
ParkFactory,
RideFactory,
RideModelFactory,
ParkAreaFactory,
UserFactory,
ManufacturerCompanyFactory,
DesignerCompanyFactory,
)

View File

@@ -4,22 +4,20 @@ Tests for UserDeletionService and AccountService.
Following Django styleguide pattern: test__<context>__<action>__<expected_outcome>
"""
from unittest.mock import patch
import pytest
from unittest.mock import Mock, patch, MagicMock
from django.test import TestCase, RequestFactory
from django.utils import timezone
from django.test import RequestFactory, TestCase
from apps.accounts.services import UserDeletionService, AccountService
from apps.accounts.models import User
from apps.accounts.services import AccountService, UserDeletionService
from tests.factories import (
UserFactory,
StaffUserFactory,
SuperUserFactory,
ParkReviewFactory,
RideReviewFactory,
ParkFactory,
ParkReviewFactory,
RideFactory,
RideReviewFactory,
SuperUserFactory,
UserFactory,
)
@@ -92,7 +90,7 @@ class TestUserDeletionServiceDeleteUserPreserveSubmissions(TestCase):
user_pk = user.pk
result = UserDeletionService.delete_user_preserve_submissions(user)
UserDeletionService.delete_user_preserve_submissions(user)
# User should be deleted
assert not User.objects.filter(pk=user_pk).exists()
@@ -270,7 +268,7 @@ class TestAccountServiceInitiateEmailChange(TestCase):
def test__initiate_email_change__duplicate_email__returns_error(self):
"""Test initiate_email_change returns error for duplicate email."""
existing_user = UserFactory(email="existing@example.com")
UserFactory(email="existing@example.com")
user = UserFactory()
factory = RequestFactory()