Coverage for benefits/metro_mobility_wallet/oauth.py: 57%

42 statements  

« prev     ^ index     » next       coverage.py v7.16.2, created at 2026-10-08 19:50 +0000

1import sentry_sdk 

2from cdt_identity.hooks import DefaultHooks 

3from django.shortcuts import redirect 

4 

5from benefits.core import session 

6 

7# from benefits.eligibility.views import analytics as eligibility_analytics 

8# from benefits.oauth import analytics 

9 

10 

11class OAuthHooks(DefaultHooks): 

12 @classmethod 

13 def pre_login(cls, request): 

14 super().pre_login(request) 

15 # analytics.started_sign_in(request) 

16 

17 @classmethod 

18 def cancel_login(cls, request): 

19 super().cancel_login(request) 

20 # analytics.canceled_sign_in(request) 

21 return redirect("metro_mobility_wallet:index") 

22 

23 @classmethod 

24 def pre_logout(cls, request): 

25 super().pre_logout(request) 

26 # analytics.started_sign_out(request) 

27 

28 # the user is signed out of the app 

29 session.logout(request) 

30 

31 @classmethod 

32 def post_logout(cls, request): 

33 super().post_logout(request) 

34 # analytics.finished_sign_out(request) 

35 

36 origin = session.origin(request) 

37 return redirect(origin) 

38 

39 @classmethod 

40 def failure_to_proof(cls, request): 

41 super().failure_to_proof(request) 

42 session.update(request, logged_in=True) 

43 # analytics.failure_to_proof(request) 

44 

45 return redirect("metro_mobility_wallet:index") 

46 

47 @classmethod 

48 def claims_verified_eligible(cls, request, claims_request, claims_result): 

49 super().claims_verified_eligible(request, claims_request, claims_result) 

50 session.update(request, logged_in=True) 

51 # analytics.finished_sign_in(request) 

52 

53 # flow = session.flow(request) 

54 # eligibility_analytics.started_eligibility(request, flow) 

55 

56 session.update(request, eligible=True) 

57 # eligibility_analytics.returned_success(request, flow) 

58 

59 return redirect("metro_mobility_wallet:index") 

60 

61 @classmethod 

62 def claims_verified_not_eligible(cls, request, claims_request, claims_result): 

63 super().claims_verified_not_eligible(request, claims_request, claims_result) 

64 session.update(request, logged_in=True) 

65 # analytics.finished_sign_in(request, error=claims_result.errors) 

66 

67 # flow = session.flow(request) 

68 # eligibility_analytics.started_eligibility(request, flow) 

69 

70 return redirect("metro_mobility_wallet:index") 

71 

72 @classmethod 

73 def system_error(cls, request, exception, operation): 

74 super().system_error(request, exception, operation) 

75 # analytics.error(request, message=str(exception), operation=str(operation)) 

76 sentry_sdk.capture_exception(exception) 

77 return redirect("metro_mobility_wallet:system_error")