Coverage for benefits/enrollment_switchio/session.py: 100%

28 statements  

« prev     ^ index     » next       coverage.py v7.9.1, created at 2025-06-23 18:20 +0000

1import logging 

2 

3from django.http import HttpRequest 

4 

5logger = logging.getLogger(__name__) 

6 

7 

8class Session: 

9 

10 _keys_registration_id = "enrollment_switchio_registration_id" 

11 _keys_gateway_url = "enrollment_switchio_gateway_url" 

12 

13 def __init__(self, request: HttpRequest, reset: bool = False, registration_id: str = None, gateway_url: str = None): 

14 """Initialize a new Switchio session wrapper for this request.""" 

15 

16 self.request = request 

17 self.session = request.session 

18 

19 if reset: 

20 self.registration_id = None 

21 self.gateway_url = None 

22 if registration_id: 

23 self.registration_id = registration_id 

24 if gateway_url: 

25 self.gateway_url = gateway_url 

26 

27 @property 

28 def registration_id(self) -> str: 

29 """Get the registration ID from the request's session, or None.""" 

30 return self.session.get(self._keys_registration_id) 

31 

32 @registration_id.setter 

33 def registration_id(self, value: str) -> None: 

34 self.session[self._keys_registration_id] = value 

35 

36 @property 

37 def gateway_url(self) -> str: 

38 """Get the gateway URL from the request's session, or None.""" 

39 return self.session.get(self._keys_gateway_url) 

40 

41 @gateway_url.setter 

42 def gateway_url(self, value: str) -> None: 

43 self.session[self._keys_gateway_url] = value