mirror of
https://github.com/pacnpal/thrillwiki_django_no_react.git
synced 2025-12-20 06:31:09 -05:00
Add comprehensive tests for Parks API and models
- Implemented extensive test cases for the Parks API, covering endpoints for listing, retrieving, creating, updating, and deleting parks. - Added tests for filtering, searching, and ordering parks in the API. - Created tests for error handling in the API, including malformed JSON and unsupported methods. - Developed model tests for Park, ParkArea, Company, and ParkReview models, ensuring validation and constraints are enforced. - Introduced utility mixins for API and model testing to streamline assertions and enhance test readability. - Included integration tests to validate complete workflows involving park creation, retrieval, updating, and deletion.
This commit is contained in:
@@ -11,6 +11,6 @@ import os
|
||||
|
||||
from django.core.asgi import get_asgi_application
|
||||
|
||||
os***REMOVED***iron.setdefault("DJANGO_SETTINGS_MODULE", "thrillwiki.settings")
|
||||
os***REMOVED***iron.setdefault("DJANGO_SETTINGS_MODULE", "config.django.production")
|
||||
|
||||
application = get_asgi_application()
|
||||
|
||||
@@ -10,12 +10,43 @@ from . import views
|
||||
from autocomplete import urls as autocomplete_urls
|
||||
import os
|
||||
|
||||
# Import API documentation views
|
||||
try:
|
||||
from drf_spectacular.views import SpectacularAPIView, SpectacularSwaggerView, SpectacularRedocView
|
||||
HAS_SPECTACULAR = True
|
||||
except ImportError:
|
||||
HAS_SPECTACULAR = False
|
||||
|
||||
# Import enhanced health check views
|
||||
try:
|
||||
from core.views.health_views import HealthCheckAPIView, PerformanceMetricsView, SimpleHealthView
|
||||
HAS_HEALTH_VIEWS = True
|
||||
except ImportError:
|
||||
HAS_HEALTH_VIEWS = False
|
||||
|
||||
urlpatterns = [
|
||||
path("admin/", admin.site.urls),
|
||||
# Main app URLs
|
||||
path("", HomeView.as_view(), name="home"),
|
||||
# Autocomplete URLs (must be before other URLs)
|
||||
path("ac/", autocomplete_urls),
|
||||
|
||||
# API Documentation URLs
|
||||
path("api/schema/", SpectacularAPIView.as_view(), name="schema") if HAS_SPECTACULAR else path("", lambda r: None),
|
||||
path("api/docs/", SpectacularSwaggerView.as_view(url_name="schema"), name="swagger-ui") if HAS_SPECTACULAR else path("", lambda r: None),
|
||||
path("api/redoc/", SpectacularRedocView.as_view(url_name="schema"), name="redoc") if HAS_SPECTACULAR else path("", lambda r: None),
|
||||
|
||||
# Health Check URLs
|
||||
path("health/", include("health_check.urls")),
|
||||
path("health/api/", HealthCheckAPIView.as_view(), name="health-api") if HAS_HEALTH_VIEWS else path("", lambda r: None),
|
||||
path("health/simple/", SimpleHealthView.as_view(), name="health-simple") if HAS_HEALTH_VIEWS else path("", lambda r: None),
|
||||
path("health/metrics/", PerformanceMetricsView.as_view(), name="health-metrics") if HAS_HEALTH_VIEWS else path("", lambda r: None),
|
||||
|
||||
# API URLs (before app URLs to avoid conflicts)
|
||||
path("api/v1/", include("parks.api.urls", namespace="parks_api")),
|
||||
path("api/v1/", include("rides.api.urls", namespace="rides_api")),
|
||||
path("api/v1/map/", include("core.urls.map_urls", namespace="map_api")), # Map API URLs
|
||||
|
||||
# Parks and Rides URLs
|
||||
path("parks/", include("parks.urls", namespace="parks")),
|
||||
# Global rides URLs
|
||||
@@ -24,7 +55,6 @@ urlpatterns = [
|
||||
path("photos/", include("media.urls", namespace="photos")), # Add photos URLs
|
||||
path("search/", include("core.urls.search", namespace="search")),
|
||||
path("maps/", include("core.urls.maps", namespace="maps")), # Map HTML views
|
||||
path("api/map/", include("core.urls.map_urls", namespace="map_api")), # Map API URLs
|
||||
path(
|
||||
"terms/", TemplateView.as_view(template_name="pages/terms.html"), name="terms"
|
||||
),
|
||||
@@ -66,6 +96,21 @@ if settings.DEBUG:
|
||||
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
|
||||
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
|
||||
|
||||
# Development monitoring URLs
|
||||
try:
|
||||
import debug_toolbar
|
||||
urlpatterns = [
|
||||
path('__debug__/', include(debug_toolbar.urls)),
|
||||
] + urlpatterns
|
||||
except ImportError:
|
||||
pass
|
||||
|
||||
try:
|
||||
import silk
|
||||
urlpatterns += [path('silk/', include('silk.urls', namespace='silk'))]
|
||||
except ImportError:
|
||||
pass
|
||||
|
||||
# Serve test coverage reports in development
|
||||
coverage_dir = os.path.join(settings.BASE_DIR, 'tests', 'coverage_html')
|
||||
if os.path.exists(coverage_dir):
|
||||
|
||||
@@ -11,6 +11,6 @@ import os
|
||||
|
||||
from django.core.wsgi import get_wsgi_application
|
||||
|
||||
os***REMOVED***iron.setdefault("DJANGO_SETTINGS_MODULE", "thrillwiki.settings")
|
||||
os***REMOVED***iron.setdefault("DJANGO_SETTINGS_MODULE", "config.django.production")
|
||||
|
||||
application = get_wsgi_application()
|
||||
|
||||
Reference in New Issue
Block a user