Coverage for conf/urls/__init__.py: 100%

16 statements  

« prev     ^ index     » next       coverage.py v7.15.2, created at 2026-10-07 06:14 +0000

1""" 

2URL configuration for the Openverse API. 

3 

4For more information on this file, see 

5https://docs.djangoproject.com/en/4.2/topics/http/urls/ 

6""" 

7 

8from django.contrib import admin 

9from django.urls import include, path 

10from django.views.generic import RedirectView, TemplateView 

11from rest_framework.routers import SimpleRouter 

12 

13from api.views.audio_views import AudioViewSet 

14from api.views.health_views import HealthCheck 

15from api.views.image_views import ImageViewSet 

16from conf.urls.auth_tokens import urlpatterns as auth_tokens_urlpatterns 

17from conf.urls.deprecations import urlpatterns as deprecations_urlpatterns 

18from conf.urls.openapi import urlpatterns as openapi_urlpatterns 

19 

20 

21versioned_paths = [ 

22 path("", include(openapi_urlpatterns)), # OpenAPI 

23 path("", include(auth_tokens_urlpatterns)), # Authentication endpoints 

24 path("", include(deprecations_urlpatterns)), # Deprecated, redirects to new URL 

25] 

26 

27router = SimpleRouter(use_regex_path=False) 

28router.register("audio", AudioViewSet, basename="audio") 

29router.register("images", ImageViewSet, basename="image") 

30versioned_paths += router.urls 

31 

32urlpatterns = [ 

33 path("", RedirectView.as_view(pattern_name="root")), 

34 path("admin/", admin.site.urls), 

35 path("healthcheck/", HealthCheck.as_view(), name="health"), 

36 path("v1/", include(versioned_paths)), 

37] + [ 

38 path( 

39 f"{file}", 

40 TemplateView.as_view( 

41 template_name=file, 

42 content_type="text/plain", 

43 ), 

44 ) 

45 for file in ["robots.txt", "ai.txt"] 

46]