Skip to content

Commit

Permalink
fix: require admin interface login to access in_person views
Browse files Browse the repository at this point in the history
  • Loading branch information
angela-tran committed Aug 13, 2024
1 parent 8e087e0 commit 6acf390
Show file tree
Hide file tree
Showing 3 changed files with 39 additions and 2 deletions.
5 changes: 3 additions & 2 deletions benefits/in_person/urls.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
from django.urls import path

from benefits.core.admin import admin
from . import views


app_name = "in_person"
urlpatterns = [
path("eligibility/", views.eligibility, name="eligibility"),
path("enrollment/", views.enrollment, name="enrollment"),
path("eligibility/", admin.site.admin_view(views.eligibility), name="eligibility"),
path("enrollment/", admin.site.admin_view(views.enrollment), name="enrollment"),
]
3 changes: 3 additions & 0 deletions benefits/in_person/views.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
from django.template.response import TemplateResponse

ROUTE_ELIGIBILITY = "in_person:eligibility"
ROUTE_ENROLLMENT = "in_person:enrollment"


def eligibility(request):
return TemplateResponse(request, "in_person/eligibility.html")
Expand Down
33 changes: 33 additions & 0 deletions tests/pytest/in_person/test_views.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
from django.urls import reverse

import pytest

from benefits.in_person.views import ROUTE_ELIGIBILITY, ROUTE_ENROLLMENT


@pytest.mark.django_db
@pytest.mark.parametrize("viewname", [ROUTE_ELIGIBILITY, ROUTE_ENROLLMENT])
def test_view_not_logged_in(client, viewname):
path = reverse(viewname)

response = client.get(path)
assert response.status_code == 302
assert response.url == "/admin/login/?next=" + path


# admin_client is a fixture from pytest
# https://pytest-django.readthedocs.io/en/latest/helpers.html#admin-client-django-test-client-logged-in-as-admin
def test_eligibility_logged_in(admin_client):
path = reverse(ROUTE_ELIGIBILITY)

response = admin_client.get(path)
assert response.status_code == 200
assert response.template_name == "in_person/eligibility.html"


def test_enrollment_logged_in(admin_client):
path = reverse(ROUTE_ENROLLMENT)

response = admin_client.get(path)
assert response.status_code == 200
assert response.template_name == "in_person/enrollment.html"

0 comments on commit 6acf390

Please sign in to comment.