Coverage for benefits/enrollment/analytics.py: 74%
21 statements
« prev ^ index » next coverage.py v7.6.4, created at 2024-10-21 19:31 +0000
« prev ^ index » next coverage.py v7.6.4, created at 2024-10-21 19:31 +0000
1"""
2The enrollment application: analytics implementation.
3"""
5from benefits.core import analytics as core, models
8class ReturnedEnrollmentEvent(core.Event):
9 """Analytics event representing the end of transit processor enrollment request."""
11 def __init__(self, request, status, error=None, enrollment_group=None, enrollment_method=models.EnrollmentMethods.DIGITAL):
12 super().__init__(request, "returned enrollment", enrollment_method)
13 if str(status).lower() in ("error", "retry", "success"): 13 ↛ 15line 13 didn't jump to line 15 because the condition on line 13 was always true
14 self.update_event_properties(status=status, error=error)
15 if enrollment_group is not None: 15 ↛ 16line 15 didn't jump to line 16 because the condition on line 15 was never true
16 self.update_event_properties(enrollment_group=enrollment_group)
19class FailedAccessTokenRequestEvent(core.Event):
20 """Analytics event representing a failure to acquire an access token for card tokenization."""
22 def __init__(self, request, status_code=None, enrollment_method=models.EnrollmentMethods.DIGITAL):
23 super().__init__(request, "failed access token request", enrollment_method)
24 if status_code is not None: 24 ↛ exitline 24 didn't return from function '__init__' because the condition on line 24 was always true
25 self.update_event_properties(status_code=status_code)
28def returned_error(request, error, enrollment_method: str = models.EnrollmentMethods.DIGITAL):
29 """Send the "returned enrollment" analytics event with an error status and message."""
30 core.send_event(ReturnedEnrollmentEvent(request, status="error", error=error, enrollment_method=enrollment_method))
33def returned_retry(request, enrollment_method: str = models.EnrollmentMethods.DIGITAL):
34 """Send the "returned enrollment" analytics event with a retry status."""
35 core.send_event(ReturnedEnrollmentEvent(request, status="retry", enrollment_method=enrollment_method))
38def returned_success(request, enrollment_group, enrollment_method: str = models.EnrollmentMethods.DIGITAL):
39 """Send the "returned enrollment" analytics event with a success status."""
40 core.send_event(
41 ReturnedEnrollmentEvent(
42 request, status="success", enrollment_group=enrollment_group, enrollment_method=enrollment_method
43 )
44 )
47def failed_access_token_request(request, status_code=None, enrollment_method: str = models.EnrollmentMethods.DIGITAL):
48 """Send the "failed access token request" analytics event with the response status code."""
49 core.send_event(FailedAccessTokenRequestEvent(request, status_code=status_code, enrollment_method=enrollment_method))