authentik.stages.user_logout.tests
logout tests
1"""logout tests""" 2 3from django.urls import reverse 4 5from authentik.core.tests.utils import create_test_admin_user, create_test_flow 6from authentik.flows.markers import StageMarker 7from authentik.flows.models import FlowDesignation, FlowStageBinding 8from authentik.flows.planner import PLAN_CONTEXT_PENDING_USER, FlowPlan 9from authentik.flows.tests import FlowTestCase 10from authentik.flows.views.executor import SESSION_KEY_PLAN 11from authentik.stages.password import BACKEND_INBUILT 12from authentik.stages.password.stage import PLAN_CONTEXT_AUTHENTICATION_BACKEND 13from authentik.stages.user_logout.models import UserLogoutStage 14 15 16class TestUserLogoutStage(FlowTestCase): 17 """Logout tests""" 18 19 def setUp(self): 20 super().setUp() 21 self.user = create_test_admin_user() 22 23 self.flow = create_test_flow(FlowDesignation.AUTHENTICATION) 24 self.stage = UserLogoutStage.objects.create(name="logout") 25 self.binding = FlowStageBinding.objects.create(target=self.flow, stage=self.stage, order=2) 26 27 def test_valid_get(self): 28 """Test with a valid pending user and backend""" 29 plan = FlowPlan(flow_pk=self.flow.pk.hex, bindings=[self.binding], markers=[StageMarker()]) 30 plan.context[PLAN_CONTEXT_PENDING_USER] = self.user 31 plan.context[PLAN_CONTEXT_AUTHENTICATION_BACKEND] = BACKEND_INBUILT 32 session = self.client.session 33 session[SESSION_KEY_PLAN] = plan 34 session.save() 35 36 response = self.client.get( 37 reverse("authentik_api:flow-executor", kwargs={"flow_slug": self.flow.slug}) 38 ) 39 40 self.assertEqual(response.status_code, 200) 41 self.assertStageRedirects(response, reverse("authentik_core:root-redirect")) 42 43 def test_valid_post(self): 44 """Test with a valid pending user and backend""" 45 plan = FlowPlan(flow_pk=self.flow.pk.hex, bindings=[self.binding], markers=[StageMarker()]) 46 plan.context[PLAN_CONTEXT_PENDING_USER] = self.user 47 plan.context[PLAN_CONTEXT_AUTHENTICATION_BACKEND] = BACKEND_INBUILT 48 session = self.client.session 49 session[SESSION_KEY_PLAN] = plan 50 session.save() 51 52 response = self.client.post( 53 reverse("authentik_api:flow-executor", kwargs={"flow_slug": self.flow.slug}) 54 ) 55 56 self.assertEqual(response.status_code, 200) 57 self.assertStageRedirects(response, reverse("authentik_core:root-redirect"))
17class TestUserLogoutStage(FlowTestCase): 18 """Logout tests""" 19 20 def setUp(self): 21 super().setUp() 22 self.user = create_test_admin_user() 23 24 self.flow = create_test_flow(FlowDesignation.AUTHENTICATION) 25 self.stage = UserLogoutStage.objects.create(name="logout") 26 self.binding = FlowStageBinding.objects.create(target=self.flow, stage=self.stage, order=2) 27 28 def test_valid_get(self): 29 """Test with a valid pending user and backend""" 30 plan = FlowPlan(flow_pk=self.flow.pk.hex, bindings=[self.binding], markers=[StageMarker()]) 31 plan.context[PLAN_CONTEXT_PENDING_USER] = self.user 32 plan.context[PLAN_CONTEXT_AUTHENTICATION_BACKEND] = BACKEND_INBUILT 33 session = self.client.session 34 session[SESSION_KEY_PLAN] = plan 35 session.save() 36 37 response = self.client.get( 38 reverse("authentik_api:flow-executor", kwargs={"flow_slug": self.flow.slug}) 39 ) 40 41 self.assertEqual(response.status_code, 200) 42 self.assertStageRedirects(response, reverse("authentik_core:root-redirect")) 43 44 def test_valid_post(self): 45 """Test with a valid pending user and backend""" 46 plan = FlowPlan(flow_pk=self.flow.pk.hex, bindings=[self.binding], markers=[StageMarker()]) 47 plan.context[PLAN_CONTEXT_PENDING_USER] = self.user 48 plan.context[PLAN_CONTEXT_AUTHENTICATION_BACKEND] = BACKEND_INBUILT 49 session = self.client.session 50 session[SESSION_KEY_PLAN] = plan 51 session.save() 52 53 response = self.client.post( 54 reverse("authentik_api:flow-executor", kwargs={"flow_slug": self.flow.slug}) 55 ) 56 57 self.assertEqual(response.status_code, 200) 58 self.assertStageRedirects(response, reverse("authentik_core:root-redirect"))
Logout tests
def
setUp(self):
20 def setUp(self): 21 super().setUp() 22 self.user = create_test_admin_user() 23 24 self.flow = create_test_flow(FlowDesignation.AUTHENTICATION) 25 self.stage = UserLogoutStage.objects.create(name="logout") 26 self.binding = FlowStageBinding.objects.create(target=self.flow, stage=self.stage, order=2)
Hook method for setting up the test fixture before exercising it.
def
test_valid_get(self):
28 def test_valid_get(self): 29 """Test with a valid pending user and backend""" 30 plan = FlowPlan(flow_pk=self.flow.pk.hex, bindings=[self.binding], markers=[StageMarker()]) 31 plan.context[PLAN_CONTEXT_PENDING_USER] = self.user 32 plan.context[PLAN_CONTEXT_AUTHENTICATION_BACKEND] = BACKEND_INBUILT 33 session = self.client.session 34 session[SESSION_KEY_PLAN] = plan 35 session.save() 36 37 response = self.client.get( 38 reverse("authentik_api:flow-executor", kwargs={"flow_slug": self.flow.slug}) 39 ) 40 41 self.assertEqual(response.status_code, 200) 42 self.assertStageRedirects(response, reverse("authentik_core:root-redirect"))
Test with a valid pending user and backend
def
test_valid_post(self):
44 def test_valid_post(self): 45 """Test with a valid pending user and backend""" 46 plan = FlowPlan(flow_pk=self.flow.pk.hex, bindings=[self.binding], markers=[StageMarker()]) 47 plan.context[PLAN_CONTEXT_PENDING_USER] = self.user 48 plan.context[PLAN_CONTEXT_AUTHENTICATION_BACKEND] = BACKEND_INBUILT 49 session = self.client.session 50 session[SESSION_KEY_PLAN] = plan 51 session.save() 52 53 response = self.client.post( 54 reverse("authentik_api:flow-executor", kwargs={"flow_slug": self.flow.slug}) 55 ) 56 57 self.assertEqual(response.status_code, 200) 58 self.assertStageRedirects(response, reverse("authentik_core:root-redirect"))
Test with a valid pending user and backend