mirror of
https://github.com/pacnpal/thrillwiki_django_no_react.git
synced 2025-12-20 12:11:13 -05:00
- Cleaned up and standardized assertions in ApiTestMixin for API response validation. - Updated ASGI settings to use os.environ for setting the DJANGO_SETTINGS_MODULE. - Removed unused imports and improved formatting in settings.py. - Refactored URL patterns in urls.py for better readability and organization. - Enhanced view functions in views.py for consistency and clarity. - Added .flake8 configuration for linting and style enforcement. - Introduced type stubs for django-environ to improve type checking with Pylance.
68 lines
2.3 KiB
Python
68 lines
2.3 KiB
Python
from django.core.management.base import BaseCommand
|
|
from django.contrib.auth import get_user_model
|
|
from parks.models import ParkReview, Park
|
|
from rides.models import Ride
|
|
from media.models import Photo
|
|
|
|
User = get_user_model()
|
|
|
|
|
|
class Command(BaseCommand):
|
|
help = "Cleans up test users and data created during e2e testing"
|
|
|
|
def handle(self, *args, **kwargs):
|
|
# Delete test users
|
|
test_users = User.objects.filter(username__in=["testuser", "moderator"])
|
|
count = test_users.count()
|
|
test_users.delete()
|
|
self.stdout.write(self.style.SUCCESS(f"Deleted {count} test users"))
|
|
|
|
# Delete test reviews
|
|
reviews = ParkReview.objects.filter(
|
|
user__username__in=["testuser", "moderator"]
|
|
)
|
|
count = reviews.count()
|
|
reviews.delete()
|
|
self.stdout.write(self.style.SUCCESS(f"Deleted {count} test reviews"))
|
|
|
|
# Delete test photos
|
|
photos = Photo.objects.filter(uploader__username__in=["testuser", "moderator"])
|
|
count = photos.count()
|
|
photos.delete()
|
|
self.stdout.write(self.style.SUCCESS(f"Deleted {count} test photos"))
|
|
|
|
# Delete test parks
|
|
parks = Park.objects.filter(name__startswith="Test Park")
|
|
count = parks.count()
|
|
parks.delete()
|
|
self.stdout.write(self.style.SUCCESS(f"Deleted {count} test parks"))
|
|
|
|
# Delete test rides
|
|
rides = Ride.objects.filter(name__startswith="Test Ride")
|
|
count = rides.count()
|
|
rides.delete()
|
|
self.stdout.write(self.style.SUCCESS(f"Deleted {count} test rides"))
|
|
|
|
# Clean up test files
|
|
import os
|
|
import glob
|
|
|
|
# Clean up test uploads
|
|
media_patterns = [
|
|
"media/uploads/test_*",
|
|
"media/avatars/test_*",
|
|
"media/park/test_*",
|
|
"media/rides/test_*",
|
|
]
|
|
|
|
for pattern in media_patterns:
|
|
files = glob.glob(pattern)
|
|
for f in files:
|
|
try:
|
|
os.remove(f)
|
|
self.stdout.write(self.style.SUCCESS(f"Deleted {f}"))
|
|
except OSError as e:
|
|
self.stdout.write(self.style.WARNING(f"Error deleting {f}: {e}"))
|
|
|
|
self.stdout.write(self.style.SUCCESS("Test data cleanup complete"))
|