# coding: utf-8

"""
    authentik

    Making authentication simple.

    The version of the OpenAPI document: 2025.10.0-rc1
    Contact: hello@goauthentik.io
    Generated by OpenAPI Generator (https://openapi-generator.tech)

    Do not edit the class manually.
"""  # noqa: E501


import unittest

from authentik_client.models.challenge_types import ChallengeTypes

class TestChallengeTypes(unittest.TestCase):
    """ChallengeTypes unit test stubs"""

    def setUp(self):
        pass

    def tearDown(self):
        pass

    def make_instance(self, include_optional) -> ChallengeTypes:
        """Test ChallengeTypes
            include_optional is a boolean, when False only required
            params are included, when True both required and
            optional params are included """
        # uncomment below to create an instance of `ChallengeTypes`
        """
        model = ChallengeTypes()
        if include_optional:
            return ChallengeTypes(
                flow_info = authentik_client.models.contextual_flow_info.ContextualFlowInfo(
                    title = '', 
                    background = '', 
                    cancel_url = '', 
                    layout = 'stacked', ),
                component = 'ak-stage-user-login',
                response_errors = {
                    'key' : [
                        authentik_client.models.error_detail.ErrorDetail(
                            string = '', 
                            code = '', )
                        ]
                    },
                pending_user = '',
                pending_user_avatar = '',
                error_message = '',
                client_id = '',
                scope = '',
                redirect_uri = '',
                state = '',
                activation_barcode = '',
                activation_code = '',
                stage_uuid = '',
                email = '',
                email_required = True,
                phone_number_required = True,
                codes = [
                    ''
                    ],
                config_url = '',
                device_challenges = [
                    authentik_client.models.device_challenge.DeviceChallenge(
                        device_class = 'static', 
                        device_uid = '', 
                        challenge = {
                            'key' : null
                            }, 
                        last_used = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
                    ],
                configuration_stages = [
                    authentik_client.models.selectable_stage.SelectableStage(
                        pk = '', 
                        name = '', 
                        verbose_name = '', 
                        meta_model_name = '', )
                    ],
                registration = {
                    'key' : None
                    },
                url = '',
                attrs = {
                    'key' : ''
                    },
                title = '',
                site_key = '',
                js_url = '',
                interactive = True,
                header_text = '',
                permissions = [
                    authentik_client.models.consent_permission.ConsentPermission(
                        name = '', 
                        id = '', )
                    ],
                additional_permissions = [
                    authentik_client.models.consent_permission.ConsentPermission(
                        name = '', 
                        id = '', )
                    ],
                token = '',
                name = '',
                request_id = '',
                error = '',
                traceback = '',
                loading_overlay = True,
                loading_text = '',
                user_fields = [
                    ''
                    ],
                password_fields = True,
                allow_show_password = True,
                application_pre = '',
                flow_designation = 'authentication',
                captcha_stage = authentik_client.models.captcha_challenge.CaptchaChallenge(
                    flow_info = authentik_client.models.contextual_flow_info.ContextualFlowInfo(
                        title = '', 
                        background = '', 
                        cancel_url = '', 
                        layout = 'stacked', ), 
                    component = 'ak-stage-captcha', 
                    response_errors = {
                        'key' : [
                            authentik_client.models.error_detail.ErrorDetail(
                                string = '', 
                                code = '', )
                            ]
                        }, 
                    pending_user = '', 
                    pending_user_avatar = '', 
                    site_key = '', 
                    js_url = '', 
                    interactive = True, ),
                enroll_url = '',
                recovery_url = '',
                passwordless_url = '',
                primary_action = '',
                sources = [
                    authentik_client.models.login_source.LoginSource(
                        name = '', 
                        icon_url = '', 
                        challenge = null, )
                    ],
                show_source_labels = True,
                enable_remember_me = True,
                slug = '',
                fields = [
                    authentik_client.models.stage_prompt.StagePrompt(
                        field_key = '', 
                        label = '', 
                        type = 'text', 
                        required = True, 
                        placeholder = '', 
                        initial_value = '', 
                        order = 56, 
                        sub_text = '', 
                        choices = [
                            ''
                            ], )
                    ],
                to = '',
                application_name = '',
                application_launch_url = '',
                invalidation_flow_url = '',
                brand_name = '',
                body = ''
            )
        else:
            return ChallengeTypes(
                pending_user = '',
                pending_user_avatar = '',
                client_id = '',
                scope = '',
                redirect_uri = '',
                state = '',
                activation_barcode = '',
                activation_code = '',
                stage_uuid = '',
                codes = [
                    ''
                    ],
                config_url = '',
                device_challenges = [
                    authentik_client.models.device_challenge.DeviceChallenge(
                        device_class = 'static', 
                        device_uid = '', 
                        challenge = {
                            'key' : null
                            }, 
                        last_used = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
                    ],
                configuration_stages = [
                    authentik_client.models.selectable_stage.SelectableStage(
                        pk = '', 
                        name = '', 
                        verbose_name = '', 
                        meta_model_name = '', )
                    ],
                registration = {
                    'key' : None
                    },
                url = '',
                attrs = {
                    'key' : ''
                    },
                site_key = '',
                js_url = '',
                interactive = True,
                permissions = [
                    authentik_client.models.consent_permission.ConsentPermission(
                        name = '', 
                        id = '', )
                    ],
                additional_permissions = [
                    authentik_client.models.consent_permission.ConsentPermission(
                        name = '', 
                        id = '', )
                    ],
                token = '',
                name = '',
                request_id = '',
                loading_text = '',
                user_fields = [
                    ''
                    ],
                password_fields = True,
                flow_designation = 'authentication',
                primary_action = '',
                show_source_labels = True,
                slug = '',
                fields = [
                    authentik_client.models.stage_prompt.StagePrompt(
                        field_key = '', 
                        label = '', 
                        type = 'text', 
                        required = True, 
                        placeholder = '', 
                        initial_value = '', 
                        order = 56, 
                        sub_text = '', 
                        choices = [
                            ''
                            ], )
                    ],
                to = '',
                brand_name = '',
                body = '',
        )
        """

    def testChallengeTypes(self):
        """Test ChallengeTypes"""
        # inst_req_only = self.make_instance(include_optional=False)
        # inst_req_and_optional = self.make_instance(include_optional=True)

if __name__ == '__main__':
    unittest.main()
