o
    h                     @   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h|_ 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sbJ ddiddiddig}|dkr{|dg dd |dg d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	mandatoryTF)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   `/var/www/html/env_mimamsha/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)dummyzunittest-serverzother-server)r   	providersprovider_tokenmfa_login_webauthnmfa_authenticatetotp)r   r   typesis_authenticated)r   metastatuszheadless:mfa:authenticatecodebadi  zIncorrect code.incorrect_code)messager0   param)r/   errors   )ACCOUNT_LOGIN_METHODSACCOUNT_EMAIL_VERIFICATION#ACCOUNT_LOGIN_ON_EMAIL_CONFIRMATION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h|_ | j|d|j|ddd}|jdksJ | }	dd |	d	 d
 D d }
|
d s0J |
d dgks9J | |d}| }	|jdksKJ tdd |	d	 d
 D sZJ d S )Nr   r
   r   r   r   r   c                 S   r   r   )r   MFA_AUTHENTICATEr   r   r   r   r   s   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>y   s    z2test_dangling_mfa_is_logged_out.<locals>.<genexpr>)r7   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_out^   s"   
"rS   N)allauth.account.modelsr   r   allauth.headless.constantsr   rK   rS   r   r   r   r   <module>   s    Y