Skip to content

Commit 9fef5ac

Browse files
committed
feat(in-person): inherit SwitchioGatewayUrlView from digital side
1 parent 6ade99b commit 9fef5ac

2 files changed

Lines changed: 27 additions & 5 deletions

File tree

benefits/in_person/views.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
from benefits.enrollment.enrollment import Status
1616
from benefits.enrollment_littlepay.enrollment import get_card_types_for_js, request_card_tokenization_access, enroll
1717
from benefits.enrollment_littlepay.session import Session as LittlepaySession
18+
from benefits.enrollment_switchio.views import GatewayUrlView
1819

1920
from benefits.in_person import forms
2021

@@ -240,3 +241,9 @@ def success(request):
240241
}
241242

242243
return TemplateResponse(request, "in_person/enrollment/success.html", context)
244+
245+
246+
class SwitchioGatewayUrlView(GatewayUrlView):
247+
enrollment_method = models.EnrollmentMethods.IN_PERSON
248+
system_error_route = routes.IN_PERSON_ENROLLMENT_SYSTEM_ERROR
249+
server_error_route = routes.IN_PERSON_SERVER_ERROR

tests/pytest/in_person/test_views.py

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
from benefits.core import models
1111
from benefits.enrollment.enrollment import Status
1212
from benefits.enrollment_littlepay.enrollment import CardTokenizationAccessResponse
13-
import benefits.in_person.views
13+
import benefits.in_person.views as views
1414
from benefits.routes import routes
1515

1616

@@ -26,17 +26,17 @@ def invalid_form_data():
2626

2727
@pytest.fixture
2828
def mocked_eligibility_analytics_module(mocker):
29-
return mocker.patch.object(benefits.in_person.views, "eligibility_analytics")
29+
return mocker.patch.object(views, "eligibility_analytics")
3030

3131

3232
@pytest.fixture
3333
def mocked_enrollment_analytics_module(mocker):
34-
return mocker.patch.object(benefits.in_person.views, "enrollment_analytics")
34+
return mocker.patch.object(views, "enrollment_analytics")
3535

3636

3737
@pytest.fixture
3838
def mocked_sentry_sdk_module(mocker):
39-
return mocker.patch.object(benefits.in_person.views, "sentry_sdk")
39+
return mocker.patch.object(views, "sentry_sdk")
4040

4141

4242
@pytest.mark.django_db
@@ -324,7 +324,7 @@ def test_enrollment_post_valid_form_success(
324324
model_User,
325325
):
326326
mocker.patch("benefits.in_person.views.enroll", return_value=(Status.SUCCESS, None))
327-
spy = mocker.spy(benefits.in_person.views.models.EnrollmentEvent.objects, "create")
327+
spy = mocker.spy(views.models.EnrollmentEvent.objects, "create")
328328

329329
# force the model_User to be the logged in user
330330
# e.g. the TransitAgency staff person assisting this in-person enrollment
@@ -460,3 +460,18 @@ def test_success(admin_client):
460460

461461
assert response.status_code == 200
462462
assert response.template_name == "in_person/enrollment/success.html"
463+
464+
465+
@pytest.mark.django_db
466+
class TestSwitchioGatewayUrlView:
467+
@pytest.fixture
468+
def view(self, app_request, model_SwitchioConfig):
469+
v = views.SwitchioGatewayUrlView()
470+
v.setup(app_request)
471+
v.agency = model_SwitchioConfig.transit_agency
472+
return v
473+
474+
def test_view(self, view: views.SwitchioGatewayUrlView):
475+
assert view.enrollment_method == models.EnrollmentMethods.IN_PERSON
476+
assert view.system_error_route == routes.IN_PERSON_ENROLLMENT_SYSTEM_ERROR
477+
assert view.server_error_route == routes.IN_PERSON_SERVER_ERROR

0 commit comments

Comments
 (0)