|
3 | 3 |
|
4 | 4 |
|
5 | 5 | from benefits.core import models |
6 | | -from benefits.enrollment.enrollment import Status |
7 | 6 | from benefits.in_person import forms |
8 | 7 | import benefits.in_person.views as views |
9 | 8 | from benefits.routes import routes |
@@ -160,116 +159,6 @@ def test_get_context_data(self, view, app_request): |
160 | 159 | assert "title" in context |
161 | 160 |
|
162 | 161 |
|
163 | | -@pytest.mark.django_db |
164 | | -@pytest.mark.usefixtures("mocked_session_agency", "mocked_session_flow", "model_LittlepayConfig") |
165 | | -def test_enrollment_logged_in_get(admin_client): |
166 | | - path = reverse(routes.IN_PERSON_ENROLLMENT_LITTLEPAY_INDEX) |
167 | | - |
168 | | - response = admin_client.get(path) |
169 | | - assert response.status_code == 200 |
170 | | - assert response.template_name == "in_person/enrollment/index.html" |
171 | | - assert "forms" in response.context_data |
172 | | - assert "cta_button" in response.context_data |
173 | | - assert "token_field" in response.context_data |
174 | | - assert "form_retry" in response.context_data |
175 | | - assert "form_success" in response.context_data |
176 | | - assert "card_types" in response.context_data |
177 | | - |
178 | | - # not supporting internationalization in in_person app yet |
179 | | - assert "overlay_language" not in response.context_data |
180 | | - |
181 | | - |
182 | | -@pytest.mark.django_db |
183 | | -@pytest.mark.usefixtures("mocked_session_agency", "mocked_session_flow", "mocked_session_eligible") |
184 | | -def test_enrollment_post_invalid_form(admin_client, invalid_form_data): |
185 | | - path = reverse(routes.IN_PERSON_ENROLLMENT_LITTLEPAY_INDEX) |
186 | | - |
187 | | - with pytest.raises(Exception, match=r"form"): |
188 | | - admin_client.post(path, invalid_form_data) |
189 | | - |
190 | | - |
191 | | -@pytest.mark.django_db |
192 | | -@pytest.mark.usefixtures("mocked_session_agency", "mocked_session_flow", "model_EnrollmentFlow", "model_LittlepayGroup") |
193 | | -def test_enrollment_post_valid_form_success( |
194 | | - mocker, |
195 | | - admin_client, |
196 | | - card_tokenize_form_data, |
197 | | - mocked_eligibility_analytics_module, |
198 | | - mocked_enrollment_analytics_module, |
199 | | - model_TransitAgency, |
200 | | - model_EnrollmentFlow, |
201 | | - model_User, |
202 | | -): |
203 | | - mocker.patch("benefits.in_person.views.enroll", return_value=(Status.SUCCESS, None)) |
204 | | - spy = mocker.spy(views.models.EnrollmentEvent.objects, "create") |
205 | | - |
206 | | - # force the model_User to be the logged in user |
207 | | - # e.g. the TransitAgency staff person assisting this in-person enrollment |
208 | | - admin_client.force_login(model_User) |
209 | | - |
210 | | - path = reverse(routes.IN_PERSON_ENROLLMENT_LITTLEPAY_INDEX) |
211 | | - response = admin_client.post(path, card_tokenize_form_data) |
212 | | - |
213 | | - spy.assert_called_once_with( |
214 | | - transit_agency=model_TransitAgency, |
215 | | - enrollment_flow=model_EnrollmentFlow, |
216 | | - enrollment_method=models.EnrollmentMethods.IN_PERSON, |
217 | | - verified_by=f"{model_User.first_name} {model_User.last_name}", |
218 | | - expiration_datetime=None, |
219 | | - ) |
220 | | - |
221 | | - assert response.status_code == 302 |
222 | | - assert response.url == reverse(routes.IN_PERSON_ENROLLMENT_SUCCESS) |
223 | | - mocked_enrollment_analytics_module.returned_success.assert_called_once() |
224 | | - |
225 | | - |
226 | | -@pytest.mark.django_db |
227 | | -@pytest.mark.usefixtures("mocked_session_agency", "mocked_session_flow", "model_EnrollmentFlow") |
228 | | -def test_enrollment_post_valid_form_system_error( |
229 | | - mocker, admin_client, card_tokenize_form_data, mocked_enrollment_analytics_module, mocked_sentry_sdk_module |
230 | | -): |
231 | | - mocker.patch("benefits.in_person.views.enroll", return_value=(Status.SYSTEM_ERROR, None)) |
232 | | - |
233 | | - path = reverse(routes.IN_PERSON_ENROLLMENT_LITTLEPAY_INDEX) |
234 | | - response = admin_client.post(path, card_tokenize_form_data) |
235 | | - |
236 | | - assert response.status_code == 302 |
237 | | - assert response.url == reverse(routes.IN_PERSON_ENROLLMENT_SYSTEM_ERROR) |
238 | | - mocked_enrollment_analytics_module.returned_error.assert_called_once() |
239 | | - mocked_sentry_sdk_module.capture_exception.assert_called_once() |
240 | | - |
241 | | - |
242 | | -@pytest.mark.django_db |
243 | | -@pytest.mark.usefixtures("mocked_session_agency", "mocked_session_flow", "model_EnrollmentFlow") |
244 | | -def test_enrollment_post_valid_form_exception( |
245 | | - mocker, admin_client, card_tokenize_form_data, mocked_enrollment_analytics_module, mocked_sentry_sdk_module |
246 | | -): |
247 | | - mocker.patch("benefits.in_person.views.enroll", return_value=(Status.EXCEPTION, None)) |
248 | | - |
249 | | - path = reverse(routes.IN_PERSON_ENROLLMENT_LITTLEPAY_INDEX) |
250 | | - response = admin_client.post(path, card_tokenize_form_data) |
251 | | - |
252 | | - assert response.status_code == 302 |
253 | | - assert response.url == reverse(routes.IN_PERSON_SERVER_ERROR) |
254 | | - mocked_enrollment_analytics_module.returned_error.assert_called_once() |
255 | | - mocked_sentry_sdk_module.capture_exception.assert_called_once() |
256 | | - |
257 | | - |
258 | | -@pytest.mark.django_db |
259 | | -@pytest.mark.usefixtures("mocked_session_agency", "mocked_session_flow", "model_EnrollmentFlow") |
260 | | -def test_enrollment_post_valid_form_reenrollment_error( |
261 | | - mocker, admin_client, card_tokenize_form_data, mocked_enrollment_analytics_module |
262 | | -): |
263 | | - mocker.patch("benefits.in_person.views.enroll", return_value=(Status.REENROLLMENT_ERROR, None)) |
264 | | - |
265 | | - path = reverse(routes.IN_PERSON_ENROLLMENT_LITTLEPAY_INDEX) |
266 | | - response = admin_client.post(path, card_tokenize_form_data) |
267 | | - |
268 | | - assert response.status_code == 302 |
269 | | - assert response.url == reverse(routes.IN_PERSON_ENROLLMENT_REENROLLMENT_ERROR) |
270 | | - mocked_enrollment_analytics_module.returned_error.assert_called_once() |
271 | | - |
272 | | - |
273 | 162 | @pytest.mark.django_db |
274 | 163 | @pytest.mark.usefixtures("mocked_session_flow", "mocked_session_agency") |
275 | 164 | def test_reenrollment_error(admin_client): |
|
0 commit comments