mirror of
https://github.com/pacnpal/thrillwiki_django_no_react.git
synced 2025-12-20 13:11:08 -05:00
- Updated imports in parks/views.py to use ParkReview as Review for clarity. - Enhanced road trip views in parks/views_roadtrip.py by removing unnecessary parameters and improving context handling. - Streamlined error handling and response messages in CreateTripView and FindParksAlongRouteView. - Improved code formatting and consistency across various methods in parks/views_roadtrip.py. - Refactored rides/models.py to import Company from models for better clarity. - Updated rides/views.py to import RideSearchForm from services for better organization. - Added a comprehensive Django best practices analysis document to memory-bank/documentation.
71 lines
2.4 KiB
Python
71 lines
2.4 KiB
Python
from django.core.management.base import BaseCommand
|
|
from django.contrib.auth import get_user_model
|
|
from django.contrib.auth.models import Group
|
|
from parks.models import Park, ParkReview as Review
|
|
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 = Review.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"))
|