Coverage for tests/tests_authentication.py: 100%

22 statements  

« prev     ^ index     » next       coverage.py v7.14.1, created at 2026-06-15 22:43 +0000

1import unittest 

2 

3from webapp.authentication import ( 

4 SESSION_AUTH_KEYS, 

5 SESSION_INTEGRATION_KEYS, 

6 SESSION_DATA_KEYS, 

7 empty_session, 

8 reset_auth_session, 

9) 

10 

11 

12class TestResetAuthSession(unittest.TestCase): 

13 def test_reset_auth_session_clears_auth_keys(self): 

14 session = {key: "value" for key in SESSION_AUTH_KEYS} 

15 reset_auth_session(session) 

16 for key in SESSION_AUTH_KEYS: 

17 self.assertNotIn(key, session) 

18 

19 def test_reset_auth_session_preserves_integration_keys(self): 

20 session = {key: f"{key}-value" for key in SESSION_INTEGRATION_KEYS} 

21 reset_auth_session(session) 

22 for key in SESSION_INTEGRATION_KEYS: 

23 self.assertEqual(session[key], f"{key}-value") 

24 

25 def test_empty_session_clears_everything(self): 

26 session = {key: "value" for key in SESSION_DATA_KEYS} 

27 empty_session(session) 

28 for key in SESSION_DATA_KEYS: 

29 self.assertNotIn(key, session) 

30 

31 def test_session_data_keys_is_union(self): 

32 self.assertEqual( 

33 set(SESSION_DATA_KEYS), 

34 set(SESSION_AUTH_KEYS) | set(SESSION_INTEGRATION_KEYS), 

35 ) 

36 

37 def test_session_keys_are_disjoint(self): 

38 self.assertEqual( 

39 set(SESSION_AUTH_KEYS).intersection(set(SESSION_INTEGRATION_KEYS)), 

40 set(), 

41 )