Coverage for tests/publisher/tests_account_logout.py: 100%

19 statements  

« prev     ^ index     » next       coverage.py v7.16.2, created at 2026-10-25 22:09 +0000

1import time 

2 

3import responses 

4from tests.publisher.endpoint_testing import BaseTestCases 

5from webapp.authentication import SESSION_DATA_KEYS 

6 

7# Make sure tests fail on stray responses. 

8responses.mock.assert_all_requests_are_fired = True 

9 

10 

11class LogoutRedirects(BaseTestCases.BaseAppTesting): 

12 def setUp(self): 

13 endpoint_url = "/logout" 

14 

15 super().setUp(snap_name=None, endpoint_url=endpoint_url, api_url=None) 

16 

17 @responses.activate 

18 def test_logout(self): 

19 with self.client.session_transaction() as session: 

20 for key in SESSION_DATA_KEYS: 

21 session[key] = "MOCK VALUE" 

22 session["pending_snap_unregister"] = { 

23 "authorization_id": "test-action", 

24 "snap_name": "test-snap", 

25 "identity_url": "https://login.ubuntu.com/test-user", 

26 "expires_at": time.time() + 300, 

27 "root_macaroon": "MOCK VALUE", 

28 } 

29 

30 response = self.client.get(self.endpoint_url) 

31 

32 self.assertEqual(302, response.status_code) 

33 

34 self.assertEqual("/", response.location) 

35 

36 self.assertIn("session=;", response.headers.get("Set-Cookie"))