From 5590fcb246ba8322c08e485c657d2a14ac30591a Mon Sep 17 00:00:00 2001 From: Tanner Prestegard <tanner.prestegard@ligo.org> Date: Fri, 3 May 2019 11:17:38 -0500 Subject: [PATCH] Rework URLconf application namespacing for API sub-apps The previous method is removed in Django 2.0 and is causing all kinds of warnings in testing with pytest. --- gracedb/api/urls.py | 10 +++++++--- gracedb/api/utils.py | 3 ++- gracedb/api/v1/superevents/urls.py | 1 + gracedb/api/v1/urls.py | 9 +++++---- 4 files changed, 15 insertions(+), 8 deletions(-) diff --git a/gracedb/api/urls.py b/gracedb/api/urls.py index 60e3f4ac2..14c81ff91 100644 --- a/gracedb/api/urls.py +++ b/gracedb/api/urls.py @@ -1,9 +1,13 @@ from django.conf.urls import url, include +from .v1 import urls as v1_urls +from .v2 import urls as v2_urls + app_name = 'api' + urlpatterns = [ - url(r'^', include('api.v1.urls', namespace='default')), - url(r'^v1/', include('api.v1.urls', namespace='v1')), - url(r'^v2/', include('api.v2.urls', namespace='v2')), + url(r'^', include((v1_urls, 'default'))), + url(r'^v1/', include((v1_urls, 'v1'))), + url(r'^v2/', include((v2_urls, 'v2'))), ] diff --git a/gracedb/api/utils.py b/gracedb/api/utils.py index f62d96f7b..c36cf1e0c 100644 --- a/gracedb/api/utils.py +++ b/gracedb/api/utils.py @@ -71,6 +71,7 @@ def is_api_request(request_path): api_app_name = 'api' resolver_match = resolve(request_path) - if (resolver_match.app_name == api_app_name): + if (resolver_match.app_names and + resolver_match.app_names[0] == api_app_name): return True return False diff --git a/gracedb/api/v1/superevents/urls.py b/gracedb/api/v1/superevents/urls.py index a7e18bb38..0ba80993f 100644 --- a/gracedb/api/v1/superevents/urls.py +++ b/gracedb/api/v1/superevents/urls.py @@ -3,6 +3,7 @@ from django.conf.urls import url, include from .views import * from .settings import SUPEREVENT_LOOKUP_REGEX + # URL kwarg for superevent detail and nested pages SUPEREVENT_DETAIL_ROOT = '(?P<{lookup_url_kwarg}>{regex})'.format( lookup_url_kwarg=SupereventViewSet.lookup_url_kwarg, diff --git a/gracedb/api/v1/urls.py b/gracedb/api/v1/urls.py index 26cdfdc52..b4d4597b8 100644 --- a/gracedb/api/v1/urls.py +++ b/gracedb/api/v1/urls.py @@ -5,6 +5,9 @@ from django.conf.urls import url, include from .main.views import GracedbRoot, PerformanceInfo, TagList, UserInfoView, \ CertDebug, CertInfosDebug +from .events import urls as event_urls +from .superevents import urls as superevent_urls + urlpatterns = [ # Root level API resources ------------------------------------------------ @@ -26,10 +29,8 @@ urlpatterns = [ # name='cert-infos-debug'), # Events section of the API ----------------------------------------------- - url(r'^events/', include('api.v1.events.urls', - namespace='events')), + url(r'^events/', include((event_urls, 'events'))), # Superevents section of the API ------------------------------------------ - url(r'^superevents/', include('api.v1.superevents.urls', - namespace='superevents')), + url(r'^superevents/', include((superevent_urls, 'superevents'))), ] -- GitLab