stages: fix stage unittests
Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org>
This commit is contained in:
		| @ -289,7 +289,11 @@ class TestFlowExecutor(TestCase): | |||||||
|         self.assertEqual(response.status_code, 200) |         self.assertEqual(response.status_code, 200) | ||||||
|         self.assertJSONEqual( |         self.assertJSONEqual( | ||||||
|             force_str(response.content), |             force_str(response.content), | ||||||
|             {"to": reverse("authentik_core:root-redirect"), "type": "redirect"}, |             { | ||||||
|  |                 "component": "xak-flow-redirect", | ||||||
|  |                 "to": reverse("authentik_core:root-redirect"), | ||||||
|  |                 "type": ChallengeTypes.REDIRECT.value, | ||||||
|  |             }, | ||||||
|         ) |         ) | ||||||
|  |  | ||||||
|     def test_reevaluate_keep(self): |     def test_reevaluate_keep(self): | ||||||
| @ -366,7 +370,11 @@ class TestFlowExecutor(TestCase): | |||||||
|         self.assertEqual(response.status_code, 200) |         self.assertEqual(response.status_code, 200) | ||||||
|         self.assertJSONEqual( |         self.assertJSONEqual( | ||||||
|             force_str(response.content), |             force_str(response.content), | ||||||
|             {"to": reverse("authentik_core:root-redirect"), "type": "redirect"}, |             { | ||||||
|  |                 "component": "xak-flow-redirect", | ||||||
|  |                 "to": reverse("authentik_core:root-redirect"), | ||||||
|  |                 "type": ChallengeTypes.REDIRECT.value, | ||||||
|  |             }, | ||||||
|         ) |         ) | ||||||
|  |  | ||||||
|     def test_reevaluate_remove_consecutive(self): |     def test_reevaluate_remove_consecutive(self): | ||||||
| @ -458,7 +466,11 @@ class TestFlowExecutor(TestCase): | |||||||
|         self.assertEqual(response.status_code, 200) |         self.assertEqual(response.status_code, 200) | ||||||
|         self.assertJSONEqual( |         self.assertJSONEqual( | ||||||
|             force_str(response.content), |             force_str(response.content), | ||||||
|             {"to": reverse("authentik_core:root-redirect"), "type": "redirect"}, |             { | ||||||
|  |                 "component": "xak-flow-redirect", | ||||||
|  |                 "to": reverse("authentik_core:root-redirect"), | ||||||
|  |                 "type": ChallengeTypes.REDIRECT.value, | ||||||
|  |             }, | ||||||
|         ) |         ) | ||||||
|  |  | ||||||
|     def test_stageview_user_identifier(self): |     def test_stageview_user_identifier(self): | ||||||
|  | |||||||
| @ -194,6 +194,7 @@ class TestAuthorize(OAuthTestCase): | |||||||
|         self.assertJSONEqual( |         self.assertJSONEqual( | ||||||
|             force_str(response.content), |             force_str(response.content), | ||||||
|             { |             { | ||||||
|  |                 "component": "xak-flow-redirect", | ||||||
|                 "type": ChallengeTypes.REDIRECT.value, |                 "type": ChallengeTypes.REDIRECT.value, | ||||||
|                 "to": f"foo://localhost?code={code.code}&state={state}", |                 "to": f"foo://localhost?code={code.code}&state={state}", | ||||||
|             }, |             }, | ||||||
| @ -232,6 +233,7 @@ class TestAuthorize(OAuthTestCase): | |||||||
|         self.assertJSONEqual( |         self.assertJSONEqual( | ||||||
|             force_str(response.content), |             force_str(response.content), | ||||||
|             { |             { | ||||||
|  |                 "component": "xak-flow-redirect", | ||||||
|                 "type": ChallengeTypes.REDIRECT.value, |                 "type": ChallengeTypes.REDIRECT.value, | ||||||
|                 "to": ( |                 "to": ( | ||||||
|                     f"http://localhost#access_token={token.access_token}" |                     f"http://localhost#access_token={token.access_token}" | ||||||
|  | |||||||
| @ -4,6 +4,7 @@ from django.urls import reverse | |||||||
| from django.utils.encoding import force_str | from django.utils.encoding import force_str | ||||||
|  |  | ||||||
| from authentik.core.models import User | from authentik.core.models import User | ||||||
|  | from authentik.flows.challenge import ChallengeTypes | ||||||
| from authentik.flows.markers import StageMarker | from authentik.flows.markers import StageMarker | ||||||
| from authentik.flows.models import Flow, FlowDesignation, FlowStageBinding | from authentik.flows.models import Flow, FlowDesignation, FlowStageBinding | ||||||
| from authentik.flows.planner import FlowPlan | from authentik.flows.planner import FlowPlan | ||||||
| @ -54,5 +55,9 @@ class TestCaptchaStage(TestCase): | |||||||
|         self.assertEqual(response.status_code, 200) |         self.assertEqual(response.status_code, 200) | ||||||
|         self.assertJSONEqual( |         self.assertJSONEqual( | ||||||
|             force_str(response.content), |             force_str(response.content), | ||||||
|             {"to": reverse("authentik_core:root-redirect"), "type": "redirect"}, |             { | ||||||
|  |                 "component": "xak-flow-redirect", | ||||||
|  |                 "to": reverse("authentik_core:root-redirect"), | ||||||
|  |                 "type": ChallengeTypes.REDIRECT.value, | ||||||
|  |             }, | ||||||
|         ) |         ) | ||||||
|  | |||||||
| @ -7,6 +7,7 @@ from django.utils.encoding import force_str | |||||||
|  |  | ||||||
| from authentik.core.models import Application, User | from authentik.core.models import Application, User | ||||||
| from authentik.core.tasks import clean_expired_models | from authentik.core.tasks import clean_expired_models | ||||||
|  | from authentik.flows.challenge import ChallengeTypes | ||||||
| from authentik.flows.markers import StageMarker | from authentik.flows.markers import StageMarker | ||||||
| from authentik.flows.models import Flow, FlowDesignation, FlowStageBinding | from authentik.flows.models import Flow, FlowDesignation, FlowStageBinding | ||||||
| from authentik.flows.planner import PLAN_CONTEXT_APPLICATION, FlowPlan | from authentik.flows.planner import PLAN_CONTEXT_APPLICATION, FlowPlan | ||||||
| @ -51,7 +52,11 @@ class TestConsentStage(TestCase): | |||||||
|         self.assertEqual(response.status_code, 200) |         self.assertEqual(response.status_code, 200) | ||||||
|         self.assertJSONEqual( |         self.assertJSONEqual( | ||||||
|             force_str(response.content), |             force_str(response.content), | ||||||
|             {"to": reverse("authentik_core:root-redirect"), "type": "redirect"}, |             { | ||||||
|  |                 "component": "xak-flow-redirect", | ||||||
|  |                 "to": reverse("authentik_core:root-redirect"), | ||||||
|  |                 "type": ChallengeTypes.REDIRECT.value, | ||||||
|  |             }, | ||||||
|         ) |         ) | ||||||
|         self.assertFalse(UserConsent.objects.filter(user=self.user).exists()) |         self.assertFalse(UserConsent.objects.filter(user=self.user).exists()) | ||||||
|  |  | ||||||
| @ -82,7 +87,11 @@ class TestConsentStage(TestCase): | |||||||
|         self.assertEqual(response.status_code, 200) |         self.assertEqual(response.status_code, 200) | ||||||
|         self.assertJSONEqual( |         self.assertJSONEqual( | ||||||
|             force_str(response.content), |             force_str(response.content), | ||||||
|             {"to": reverse("authentik_core:root-redirect"), "type": "redirect"}, |             { | ||||||
|  |                 "component": "xak-flow-redirect", | ||||||
|  |                 "to": reverse("authentik_core:root-redirect"), | ||||||
|  |                 "type": ChallengeTypes.REDIRECT.value, | ||||||
|  |             }, | ||||||
|         ) |         ) | ||||||
|         self.assertTrue( |         self.assertTrue( | ||||||
|             UserConsent.objects.filter( |             UserConsent.objects.filter( | ||||||
| @ -119,7 +128,11 @@ class TestConsentStage(TestCase): | |||||||
|         self.assertEqual(response.status_code, 200) |         self.assertEqual(response.status_code, 200) | ||||||
|         self.assertJSONEqual( |         self.assertJSONEqual( | ||||||
|             force_str(response.content), |             force_str(response.content), | ||||||
|             {"to": reverse("authentik_core:root-redirect"), "type": "redirect"}, |             { | ||||||
|  |                 "component": "xak-flow-redirect", | ||||||
|  |                 "to": reverse("authentik_core:root-redirect"), | ||||||
|  |                 "type": ChallengeTypes.REDIRECT.value, | ||||||
|  |             }, | ||||||
|         ) |         ) | ||||||
|         self.assertTrue( |         self.assertTrue( | ||||||
|             UserConsent.objects.filter( |             UserConsent.objects.filter( | ||||||
|  | |||||||
| @ -4,6 +4,7 @@ from django.urls import reverse | |||||||
| from django.utils.encoding import force_str | from django.utils.encoding import force_str | ||||||
|  |  | ||||||
| from authentik.core.models import User | from authentik.core.models import User | ||||||
|  | from authentik.flows.challenge import ChallengeTypes | ||||||
| from authentik.flows.models import Flow, FlowDesignation, FlowStageBinding | from authentik.flows.models import Flow, FlowDesignation, FlowStageBinding | ||||||
| from authentik.stages.dummy.models import DummyStage | from authentik.stages.dummy.models import DummyStage | ||||||
|  |  | ||||||
| @ -45,5 +46,9 @@ class TestDummyStage(TestCase): | |||||||
|         self.assertEqual(response.status_code, 200) |         self.assertEqual(response.status_code, 200) | ||||||
|         self.assertJSONEqual( |         self.assertJSONEqual( | ||||||
|             force_str(response.content), |             force_str(response.content), | ||||||
|             {"to": reverse("authentik_core:root-redirect"), "type": "redirect"}, |             { | ||||||
|  |                 "component": "xak-flow-redirect", | ||||||
|  |                 "to": reverse("authentik_core:root-redirect"), | ||||||
|  |                 "type": ChallengeTypes.REDIRECT.value, | ||||||
|  |             }, | ||||||
|         ) |         ) | ||||||
|  | |||||||
| @ -8,6 +8,7 @@ from django.utils.encoding import force_str | |||||||
| from django.utils.http import urlencode | from django.utils.http import urlencode | ||||||
|  |  | ||||||
| from authentik.core.models import Token, User | from authentik.core.models import Token, User | ||||||
|  | from authentik.flows.challenge import ChallengeTypes | ||||||
| from authentik.flows.markers import StageMarker | from authentik.flows.markers import StageMarker | ||||||
| from authentik.flows.models import Flow, FlowDesignation, FlowStageBinding | from authentik.flows.models import Flow, FlowDesignation, FlowStageBinding | ||||||
| from authentik.flows.planner import PLAN_CONTEXT_PENDING_USER, FlowPlan | from authentik.flows.planner import PLAN_CONTEXT_PENDING_USER, FlowPlan | ||||||
| @ -133,7 +134,11 @@ class TestEmailStage(TestCase): | |||||||
|             self.assertEqual(response.status_code, 200) |             self.assertEqual(response.status_code, 200) | ||||||
|             self.assertJSONEqual( |             self.assertJSONEqual( | ||||||
|                 force_str(response.content), |                 force_str(response.content), | ||||||
|                 {"to": reverse("authentik_core:root-redirect"), "type": "redirect"}, |                 { | ||||||
|  |                     "component": "xak-flow-redirect", | ||||||
|  |                     "to": reverse("authentik_core:root-redirect"), | ||||||
|  |                     "type": ChallengeTypes.REDIRECT.value, | ||||||
|  |                 }, | ||||||
|             ) |             ) | ||||||
|  |  | ||||||
|             session = self.client.session |             session = self.client.session | ||||||
|  | |||||||
| @ -86,6 +86,7 @@ class IdentificationStageView(ChallengeStageView): | |||||||
|             data={ |             data={ | ||||||
|                 "type": ChallengeTypes.NATIVE.value, |                 "type": ChallengeTypes.NATIVE.value, | ||||||
|                 "primary_action": _("Log in"), |                 "primary_action": _("Log in"), | ||||||
|  |                 "component": "ak-stage-identification", | ||||||
|                 "user_fields": current_stage.user_fields, |                 "user_fields": current_stage.user_fields, | ||||||
|             } |             } | ||||||
|         ) |         ) | ||||||
|  | |||||||
| @ -53,7 +53,11 @@ class TestIdentificationStage(TestCase): | |||||||
|         self.assertEqual(response.status_code, 200) |         self.assertEqual(response.status_code, 200) | ||||||
|         self.assertJSONEqual( |         self.assertJSONEqual( | ||||||
|             force_str(response.content), |             force_str(response.content), | ||||||
|             {"to": reverse("authentik_core:root-redirect"), "type": "redirect"}, |             { | ||||||
|  |                 "component": "xak-flow-redirect", | ||||||
|  |                 "to": reverse("authentik_core:root-redirect"), | ||||||
|  |                 "type": ChallengeTypes.REDIRECT.value, | ||||||
|  |             }, | ||||||
|         ) |         ) | ||||||
|  |  | ||||||
|     def test_invalid_with_username(self): |     def test_invalid_with_username(self): | ||||||
| @ -118,8 +122,9 @@ class TestIdentificationStage(TestCase): | |||||||
|                         "icon_url": "/static/authentik/sources/.svg", |                         "icon_url": "/static/authentik/sources/.svg", | ||||||
|                         "name": "test", |                         "name": "test", | ||||||
|                         "challenge": { |                         "challenge": { | ||||||
|  |                             "component": "xak-flow-redirect", | ||||||
|                             "to": "/source/oauth/login/test/", |                             "to": "/source/oauth/login/test/", | ||||||
|                             "type": "redirect", |                             "type": ChallengeTypes.REDIRECT.value, | ||||||
|                         }, |                         }, | ||||||
|                     } |                     } | ||||||
|                 ], |                 ], | ||||||
| @ -162,8 +167,9 @@ class TestIdentificationStage(TestCase): | |||||||
|                 "sources": [ |                 "sources": [ | ||||||
|                     { |                     { | ||||||
|                         "challenge": { |                         "challenge": { | ||||||
|  |                             "component": "xak-flow-redirect", | ||||||
|                             "to": "/source/oauth/login/test/", |                             "to": "/source/oauth/login/test/", | ||||||
|                             "type": "redirect", |                             "type": ChallengeTypes.REDIRECT.value, | ||||||
|                         }, |                         }, | ||||||
|                         "icon_url": "/static/authentik/sources/.svg", |                         "icon_url": "/static/authentik/sources/.svg", | ||||||
|                         "name": "test", |                         "name": "test", | ||||||
|  | |||||||
| @ -89,7 +89,11 @@ class TestUserLoginStage(TestCase): | |||||||
|         self.assertEqual(response.status_code, 200) |         self.assertEqual(response.status_code, 200) | ||||||
|         self.assertJSONEqual( |         self.assertJSONEqual( | ||||||
|             force_str(response.content), |             force_str(response.content), | ||||||
|             {"to": reverse("authentik_core:root-redirect"), "type": "redirect"}, |             { | ||||||
|  |                 "component": "xak-flow-redirect", | ||||||
|  |                 "to": reverse("authentik_core:root-redirect"), | ||||||
|  |                 "type": ChallengeTypes.REDIRECT.value, | ||||||
|  |             }, | ||||||
|         ) |         ) | ||||||
|  |  | ||||||
|         self.stage.continue_flow_without_invitation = False |         self.stage.continue_flow_without_invitation = False | ||||||
| @ -123,7 +127,11 @@ class TestUserLoginStage(TestCase): | |||||||
|         self.assertEqual(response.status_code, 200) |         self.assertEqual(response.status_code, 200) | ||||||
|         self.assertJSONEqual( |         self.assertJSONEqual( | ||||||
|             force_str(response.content), |             force_str(response.content), | ||||||
|             {"to": reverse("authentik_core:root-redirect"), "type": "redirect"}, |             { | ||||||
|  |                 "component": "xak-flow-redirect", | ||||||
|  |                 "to": reverse("authentik_core:root-redirect"), | ||||||
|  |                 "type": ChallengeTypes.REDIRECT.value, | ||||||
|  |             }, | ||||||
|         ) |         ) | ||||||
|  |  | ||||||
|     def test_with_invitation_prompt_data(self): |     def test_with_invitation_prompt_data(self): | ||||||
| @ -154,7 +162,11 @@ class TestUserLoginStage(TestCase): | |||||||
|         self.assertEqual(response.status_code, 200) |         self.assertEqual(response.status_code, 200) | ||||||
|         self.assertJSONEqual( |         self.assertJSONEqual( | ||||||
|             force_str(response.content), |             force_str(response.content), | ||||||
|             {"to": reverse("authentik_core:root-redirect"), "type": "redirect"}, |             { | ||||||
|  |                 "component": "xak-flow-redirect", | ||||||
|  |                 "to": reverse("authentik_core:root-redirect"), | ||||||
|  |                 "type": ChallengeTypes.REDIRECT.value, | ||||||
|  |             }, | ||||||
|         ) |         ) | ||||||
|         self.assertFalse(Invitation.objects.filter(pk=invite.pk)) |         self.assertFalse(Invitation.objects.filter(pk=invite.pk)) | ||||||
|  |  | ||||||
|  | |||||||
| @ -118,7 +118,11 @@ class TestPasswordStage(TestCase): | |||||||
|         self.assertEqual(response.status_code, 200) |         self.assertEqual(response.status_code, 200) | ||||||
|         self.assertJSONEqual( |         self.assertJSONEqual( | ||||||
|             force_str(response.content), |             force_str(response.content), | ||||||
|             {"to": reverse("authentik_core:root-redirect"), "type": "redirect"}, |             { | ||||||
|  |                 "component": "xak-flow-redirect", | ||||||
|  |                 "to": reverse("authentik_core:root-redirect"), | ||||||
|  |                 "type": ChallengeTypes.REDIRECT.value, | ||||||
|  |             }, | ||||||
|         ) |         ) | ||||||
|  |  | ||||||
|     def test_invalid_password(self): |     def test_invalid_password(self): | ||||||
|  | |||||||
| @ -51,9 +51,11 @@ class PromptResponseChallenge(ChallengeResponse): | |||||||
|     component = CharField(default="ak-stage-prompt") |     component = CharField(default="ak-stage-prompt") | ||||||
|  |  | ||||||
|     def __init__(self, *args, **kwargs): |     def __init__(self, *args, **kwargs): | ||||||
|  |         stage: PromptStage = kwargs.pop("stage", None) | ||||||
|  |         plan: FlowPlan = kwargs.pop("plan", None) | ||||||
|         super().__init__(*args, **kwargs) |         super().__init__(*args, **kwargs) | ||||||
|         self.stage: PromptStage = kwargs.pop("stage", None) |         self.stage = stage | ||||||
|         self.plan: FlowPlan = kwargs.pop("plan", None) |         self.plan = plan | ||||||
|         if not self.stage: |         if not self.stage: | ||||||
|             return |             return | ||||||
|         # list() is called so we only load the fields once |         # list() is called so we only load the fields once | ||||||
|  | |||||||
| @ -6,6 +6,7 @@ from django.urls import reverse | |||||||
| from django.utils.encoding import force_str | from django.utils.encoding import force_str | ||||||
|  |  | ||||||
| from authentik.core.models import User | from authentik.core.models import User | ||||||
|  | from authentik.flows.challenge import ChallengeTypes | ||||||
| from authentik.flows.markers import StageMarker | from authentik.flows.markers import StageMarker | ||||||
| from authentik.flows.models import Flow, FlowDesignation, FlowStageBinding | from authentik.flows.models import Flow, FlowDesignation, FlowStageBinding | ||||||
| from authentik.flows.planner import FlowPlan | from authentik.flows.planner import FlowPlan | ||||||
| @ -167,7 +168,11 @@ class TestPromptStage(TestCase): | |||||||
|         self.assertEqual(response.status_code, 200) |         self.assertEqual(response.status_code, 200) | ||||||
|         self.assertJSONEqual( |         self.assertJSONEqual( | ||||||
|             force_str(response.content), |             force_str(response.content), | ||||||
|             {"to": reverse("authentik_core:root-redirect"), "type": "redirect"}, |             { | ||||||
|  |                 "component": "xak-flow-redirect", | ||||||
|  |                 "to": reverse("authentik_core:root-redirect"), | ||||||
|  |                 "type": ChallengeTypes.REDIRECT.value, | ||||||
|  |             }, | ||||||
|         ) |         ) | ||||||
|  |  | ||||||
|         # Check that valid data has been saved |         # Check that valid data has been saved | ||||||
|  | |||||||
| @ -75,7 +75,11 @@ class TestUserDeleteStage(TestCase): | |||||||
|         self.assertEqual(response.status_code, 200) |         self.assertEqual(response.status_code, 200) | ||||||
|         self.assertJSONEqual( |         self.assertJSONEqual( | ||||||
|             force_str(response.content), |             force_str(response.content), | ||||||
|             {"to": reverse("authentik_core:root-redirect"), "type": "redirect"}, |             { | ||||||
|  |                 "component": "xak-flow-redirect", | ||||||
|  |                 "to": reverse("authentik_core:root-redirect"), | ||||||
|  |                 "type": ChallengeTypes.REDIRECT.value, | ||||||
|  |             }, | ||||||
|         ) |         ) | ||||||
|  |  | ||||||
|         self.assertFalse(User.objects.filter(username=self.username).exists()) |         self.assertFalse(User.objects.filter(username=self.username).exists()) | ||||||
|  | |||||||
| @ -49,7 +49,11 @@ class TestUserLoginStage(TestCase): | |||||||
|         self.assertEqual(response.status_code, 200) |         self.assertEqual(response.status_code, 200) | ||||||
|         self.assertJSONEqual( |         self.assertJSONEqual( | ||||||
|             force_str(response.content), |             force_str(response.content), | ||||||
|             {"to": reverse("authentik_core:root-redirect"), "type": "redirect"}, |             { | ||||||
|  |                 "component": "xak-flow-redirect", | ||||||
|  |                 "to": reverse("authentik_core:root-redirect"), | ||||||
|  |                 "type": ChallengeTypes.REDIRECT.value, | ||||||
|  |             }, | ||||||
|         ) |         ) | ||||||
|  |  | ||||||
|     def test_expiry(self): |     def test_expiry(self): | ||||||
| @ -70,7 +74,11 @@ class TestUserLoginStage(TestCase): | |||||||
|         self.assertEqual(response.status_code, 200) |         self.assertEqual(response.status_code, 200) | ||||||
|         self.assertJSONEqual( |         self.assertJSONEqual( | ||||||
|             force_str(response.content), |             force_str(response.content), | ||||||
|             {"to": reverse("authentik_core:root-redirect"), "type": "redirect"}, |             { | ||||||
|  |                 "component": "xak-flow-redirect", | ||||||
|  |                 "to": reverse("authentik_core:root-redirect"), | ||||||
|  |                 "type": ChallengeTypes.REDIRECT.value, | ||||||
|  |             }, | ||||||
|         ) |         ) | ||||||
|         self.assertNotEqual(list(self.client.session.keys()), []) |         self.assertNotEqual(list(self.client.session.keys()), []) | ||||||
|         sleep(3) |         sleep(3) | ||||||
|  | |||||||
| @ -4,6 +4,7 @@ from django.urls import reverse | |||||||
| from django.utils.encoding import force_str | from django.utils.encoding import force_str | ||||||
|  |  | ||||||
| from authentik.core.models import User | from authentik.core.models import User | ||||||
|  | from authentik.flows.challenge import ChallengeTypes | ||||||
| from authentik.flows.markers import StageMarker | from authentik.flows.markers import StageMarker | ||||||
| from authentik.flows.models import Flow, FlowDesignation, FlowStageBinding | from authentik.flows.models import Flow, FlowDesignation, FlowStageBinding | ||||||
| from authentik.flows.planner import PLAN_CONTEXT_PENDING_USER, FlowPlan | from authentik.flows.planner import PLAN_CONTEXT_PENDING_USER, FlowPlan | ||||||
| @ -48,5 +49,9 @@ class TestUserLogoutStage(TestCase): | |||||||
|         self.assertEqual(response.status_code, 200) |         self.assertEqual(response.status_code, 200) | ||||||
|         self.assertJSONEqual( |         self.assertJSONEqual( | ||||||
|             force_str(response.content), |             force_str(response.content), | ||||||
|             {"to": reverse("authentik_core:root-redirect"), "type": "redirect"}, |             { | ||||||
|  |                 "component": "xak-flow-redirect", | ||||||
|  |                 "to": reverse("authentik_core:root-redirect"), | ||||||
|  |                 "type": ChallengeTypes.REDIRECT.value, | ||||||
|  |             }, | ||||||
|         ) |         ) | ||||||
|  | |||||||
| @ -60,7 +60,11 @@ class TestUserWriteStage(TestCase): | |||||||
|         self.assertEqual(response.status_code, 200) |         self.assertEqual(response.status_code, 200) | ||||||
|         self.assertJSONEqual( |         self.assertJSONEqual( | ||||||
|             force_str(response.content), |             force_str(response.content), | ||||||
|             {"to": reverse("authentik_core:root-redirect"), "type": "redirect"}, |             { | ||||||
|  |                 "component": "xak-flow-redirect", | ||||||
|  |                 "to": reverse("authentik_core:root-redirect"), | ||||||
|  |                 "type": ChallengeTypes.REDIRECT.value, | ||||||
|  |             }, | ||||||
|         ) |         ) | ||||||
|         user_qs = User.objects.filter( |         user_qs = User.objects.filter( | ||||||
|             username=plan.context[PLAN_CONTEXT_PROMPT]["username"] |             username=plan.context[PLAN_CONTEXT_PROMPT]["username"] | ||||||
| @ -97,7 +101,11 @@ class TestUserWriteStage(TestCase): | |||||||
|         self.assertEqual(response.status_code, 200) |         self.assertEqual(response.status_code, 200) | ||||||
|         self.assertJSONEqual( |         self.assertJSONEqual( | ||||||
|             force_str(response.content), |             force_str(response.content), | ||||||
|             {"to": reverse("authentik_core:root-redirect"), "type": "redirect"}, |             { | ||||||
|  |                 "component": "xak-flow-redirect", | ||||||
|  |                 "to": reverse("authentik_core:root-redirect"), | ||||||
|  |                 "type": ChallengeTypes.REDIRECT.value, | ||||||
|  |             }, | ||||||
|         ) |         ) | ||||||
|         user_qs = User.objects.filter( |         user_qs = User.objects.filter( | ||||||
|             username=plan.context[PLAN_CONTEXT_PROMPT]["username"] |             username=plan.context[PLAN_CONTEXT_PROMPT]["username"] | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user
	 Jens Langhammer
					Jens Langhammer