22from django .urls import reverse
33
44from benefits .routes import routes
5- import benefits .enrollment .views
5+ import benefits .enrollment .views as views
66import benefits .enrollment .enrollment
77from benefits .core .middleware import TEMPLATE_USER_ERROR
88from benefits .enrollment .views import TEMPLATE_RETRY , system_error
@@ -29,23 +29,25 @@ def mocked_sentry_sdk_module(mocker):
2929
3030
3131@pytest .mark .django_db
32- @pytest .mark .usefixtures ("mocked_session_agency" , "mocked_session_flow" , "mocked_session_eligible" , "model_LittlepayConfig" )
33- def test_index_eligible_get_littlepay (client ):
34- path = reverse (routes .ENROLLMENT_INDEX )
35- response = client .get (path )
32+ class TestIndexView :
3633
37- assert response .status_code == 302
38- assert response .url == reverse (routes .ENROLLMENT_LITTLEPAY_INDEX )
34+ @pytest .fixture
35+ def view (self , app_request , model_LittlepayConfig ):
36+ v = views .IndexView ()
37+ v .setup (app_request )
38+ v .agency = model_LittlepayConfig .transit_agency
39+ return v
3940
41+ def test_get_redirect_url (self , view ):
4042
41- @pytest .mark .django_db
42- @pytest .mark .usefixtures ("mocked_session_agency" , "mocked_session_flow" , "mocked_session_eligible" , "model_SwitchioConfig" )
43- def test_index_eligible_get_switchio (client ):
44- path = reverse (routes .ENROLLMENT_INDEX )
45- response = client .get (path )
43+ assert view .get_redirect_url () == reverse (view .agency .enrollment_index_route )
44+
45+ def test_get (self , view , app_request , mocked_session_update ):
4646
47- assert response .status_code == 302
48- assert response .url == reverse (routes .ENROLLMENT_SWITCHIO_INDEX )
47+ response = view .get (app_request )
48+
49+ assert response .status_code == 302
50+ mocked_session_update .assert_called_once ()
4951
5052
5153@pytest .mark .django_db
@@ -63,16 +65,6 @@ def test_system_error(
6365 assert {"origin" : mocked_session_agency .return_value .index_url } in mock_session .update .call_args
6466
6567
66- @pytest .mark .django_db
67- def test_index_ineligible (client ):
68- path = reverse (routes .ENROLLMENT_INDEX )
69-
70- response = client .get (path )
71-
72- assert response .status_code == 200
73- assert response .template_name == TEMPLATE_USER_ERROR
74-
75-
7668@pytest .mark .django_db
7769def test_reenrollment_error_ineligible (client ):
7870 path = reverse (routes .ENROLLMENT_REENROLLMENT_ERROR )
0 commit comments