Coverage for benefits / core / context_processors.py: 78%
44 statements
« prev ^ index » next coverage.py v7.13.4, created at 2026-02-13 19:35 +0000
« prev ^ index » next coverage.py v7.13.4, created at 2026-02-13 19:35 +0000
1"""
2The core application: context processors for enriching request context data.
3"""
5from django.conf import settings
7from benefits.routes import routes as app_routes
9from . import models, session
12def _agency_context(agency: models.TransitAgency):
13 agency_context = {
14 "eligibility_index_url": agency.eligibility_index_url,
15 "info_url": agency.info_url,
16 "littlepay_config": agency.littlepay_config,
17 "long_name": agency.long_name,
18 "phone": agency.phone,
19 "short_name": agency.short_name,
20 "slug": agency.slug,
21 "supported_card_schemes": [
22 models.CardSchemes.CHOICES.get(card_scheme) for card_scheme in agency.supported_card_schemes
23 ],
24 "switchio_config": agency.switchio_config,
25 }
27 if agency.logo: 27 ↛ 30line 27 didn't jump to line 30 because the condition on line 27 was always true
28 agency_context.update({"logo_url": agency.logo.url})
30 return agency_context
33def agency(request):
34 """Context processor adds some information about the active agency to the request context."""
35 agency = session.agency(request)
37 if agency is None:
38 return {}
40 return {"agency": _agency_context(agency)}
43def active_agencies(request):
44 """Context processor adds some information about all active agencies to the request context."""
45 agencies = models.TransitAgency.all_active()
47 return {"active_agencies": [_agency_context(agency) for agency in agencies]}
50def analytics(request):
51 """Context processor adds some analytics information to request context."""
52 return {"analytics": {"api_key": settings.ANALYTICS_KEY, "uid": session.uid(request), "did": session.did(request)}}
55def authentication(request):
56 """Context processor adds authentication information to request context."""
57 flow = session.flow(request)
59 if flow: 59 ↛ 60line 59 didn't jump to line 60 because the condition on line 59 was never true
60 data = {
61 "logged_in": session.logged_in(request),
62 }
64 if flow.uses_claims_verification:
65 data["sign_out_button_template"] = flow.sign_out_button_template
66 data["sign_out_link_template"] = flow.sign_out_link_template
68 return {"authentication": data}
69 else:
70 return {}
73def debug(request):
74 """Context processor adds debug information to request context."""
75 return {"debug": session.context_dict(request)}
78def enrollment(request):
79 """Context processor adds enrollment information to request context."""
80 flow = session.flow(request)
81 expiry = session.enrollment_expiry(request)
82 reenrollment = session.enrollment_reenrollment(request)
84 data = {
85 "expires": expiry,
86 "reenrollment": reenrollment,
87 "supports_expiration": flow.supports_expiration if flow else False,
88 }
90 return {"enrollment": data}
93def feature_flags(request):
94 """Context processor adds feature flags to request context."""
95 return {"feature_flags": {}}
98def origin(request):
99 """Context processor adds session.origin to request context."""
100 origin = session.origin(request)
102 if origin: 102 ↛ 105line 102 didn't jump to line 105 because the condition on line 102 was always true
103 return {"origin": origin}
104 else:
105 return {}
108def routes(request):
109 """Context processor adds information about each application route to the context."""
111 return {"routes": app_routes.to_dict()}