o
    "4g                     @   s0   d dl mZmZ d dlmZ dd Zdd ZdS )    )EmailAddressget_emailconfirmation_model)Flowc                 C   s  d|_ d|_| }|d|dd}| j|d|j|ddd	}	|	jd
ks%J |	 }
dd |
d d D d d s:J tjj|dd	 }t
 |j}| j|dd|idd	}	|	jd
ks^J ddiddiddig}|dkrw|dg dd |ddgd |ddi |ddd gd! |	 d|id"did
d#ksJ | j|d$d%d&idd	}	|	jd'ksJ |	 d'd(d)d%d*gd+ksJ |  | j|d$d%d&idd	}	W d    n1 sw   Y  |	jd,ksJ d S )-Nemail	mandatoryFT)email_verifiedpassword	with_totpheadless:account:loginr   r   application/jsondatacontent_type  c                 S      g | ]}|d  t jkr|qS id)r   VERIFY_EMAIL.0f r   n/var/www/html/authentication-server/venv/lib/python3.10/site-packages/allauth/headless/mfa/tests/test_views.py
<listcomp>       z6test_auth_unverified_email_and_mfa.<locals>.<listcomp>r   flowsr   
is_pending)userverifiedzheadless:account:verify_emailkeyr   loginlogin_by_codesignupbrowserprovider_redirect)dummyopenid_connectr'   )r   	providersprovider_tokenr&   mfa_login_webauthnmfa_authenticatetotp)r   r   typesis_authenticated)r   metastatuszheadless:mfa:authenticatecodebadi  zIncorrect code.incorrect_code)messager1   param)r0   errors   )ACCOUNT_AUTHENTICATION_METHODACCOUNT_EMAIL_VERIFICATIONpostr   status_codejsonr   objectsfiltergetr   creater    append)clientuser_factorypassword_factorysettingstotp_validation_bypassheadless_reverseheadless_clientr   r   respr   emailaddressr    r   r   r   r   "test_auth_unverified_email_and_mfa   s   	
rK   c                 C   s   d|_ | j|d|j|ddd}|jdksJ | }	dd |	d	 d
 D d }
|
d s/J |
d dgks8J | |d}| }	|jdksJJ tdd |	d	 d
 D sYJ d S )Nr   r
   r   r   r   r   c                 S   r   r   )r   MFA_AUTHENTICATEr   r   r   r   r   m   r   z3test_dangling_mfa_is_logged_out.<locals>.<listcomp>r   r   r   r   r-   r,   z headless:account:current_sessionc                 s   s    | ]	}| d  V  qdS )r   N)r?   r   r   r   r   	<genexpr>s   s    z2test_dangling_mfa_is_logged_out.<locals>.<genexpr>)r8   r:   r   r;   r<   deleteall)rB   user_with_totprD   rE   rF   rG   rH   user_passwordrI   r   flowr   r   r   test_dangling_mfa_is_logged_outX   s"   
"rS   N)allauth.account.modelsr   r   allauth.headless.constantsr   rK   rS   r   r   r   r   <module>   s    S