From 8fcf6d668b5a3bfc9fd6b06d4efa229be013e865 Mon Sep 17 00:00:00 2001 From: Santhosh Kumar Date: Tue, 15 Sep 2026 12:10:02 +0530 Subject: [PATCH 1/3] feat: expose Django admin for feature flags --- analyticsdataserver/tests/test_urls.py | 7 +++++++ analyticsdataserver/urls.py | 3 ++- 2 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 analyticsdataserver/tests/test_urls.py diff --git a/analyticsdataserver/tests/test_urls.py b/analyticsdataserver/tests/test_urls.py new file mode 100644 index 00000000..180be8e7 --- /dev/null +++ b/analyticsdataserver/tests/test_urls.py @@ -0,0 +1,7 @@ +from django.test import SimpleTestCase +from django.urls import reverse + + +class UrlConfigurationTests(SimpleTestCase): + def test_admin_url_is_exposed(self): + self.assertEqual(reverse('admin:index'), '/admin/') diff --git a/analyticsdataserver/urls.py b/analyticsdataserver/urls.py index df0d3f45..7910e327 100644 --- a/analyticsdataserver/urls.py +++ b/analyticsdataserver/urls.py @@ -1,5 +1,5 @@ from django.contrib import admin -from django.urls import include, re_path +from django.urls import include, path, re_path from django.views.generic import RedirectView from edx_api_doc_tools import make_api_info, make_docs_ui_view from rest_framework.authtoken.views import obtain_auth_token @@ -31,6 +31,7 @@ ) urlpatterns += [ + path('admin/', admin.site.urls), re_path(r'^docs/$', api_ui_view, name='api-docs'), re_path(r'^$', RedirectView.as_view(url='/docs')), # pylint: disable=no-value-for-parameter ] From a4d014923538ea1c6387fd5baafbbf3135849638 Mon Sep 17 00:00:00 2001 From: Santhosh Kumar Date: Tue, 15 Sep 2026 12:39:41 +0530 Subject: [PATCH 2/3] test: verify admin requires authentication --- analyticsdataserver/tests/test_urls.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/analyticsdataserver/tests/test_urls.py b/analyticsdataserver/tests/test_urls.py index 180be8e7..5e811dbb 100644 --- a/analyticsdataserver/tests/test_urls.py +++ b/analyticsdataserver/tests/test_urls.py @@ -5,3 +5,8 @@ class UrlConfigurationTests(SimpleTestCase): def test_admin_url_is_exposed(self): self.assertEqual(reverse('admin:index'), '/admin/') + + def test_admin_requires_authentication(self): + response = self.client.get(reverse('admin:index')) + + self.assertRedirects(response, '/admin/login/?next=/admin/') From 752555cd55860e9478bc6e786c6a5ce723dce7f4 Mon Sep 17 00:00:00 2001 From: Santhosh Kumar Date: Tue, 15 Sep 2026 12:48:17 +0530 Subject: [PATCH 3/3] test: allow admin authentication test database access --- analyticsdataserver/tests/test_urls.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/analyticsdataserver/tests/test_urls.py b/analyticsdataserver/tests/test_urls.py index 5e811dbb..424c0f3f 100644 --- a/analyticsdataserver/tests/test_urls.py +++ b/analyticsdataserver/tests/test_urls.py @@ -1,8 +1,8 @@ -from django.test import SimpleTestCase +from django.test import TestCase from django.urls import reverse -class UrlConfigurationTests(SimpleTestCase): +class UrlConfigurationTests(TestCase): def test_admin_url_is_exposed(self): self.assertEqual(reverse('admin:index'), '/admin/')