Ë
    ûûàg�  ã                   óv   — d dl mZ d dlmZ d dlmZ d dlmZ d dlm	Z	 d dl
mZ d dlmZ d„ Zd	„ Zd
„ Zd„ Zd„ Zy)é    )ÚANY)Úsettings)Úreverse)Ú"AUTHENTICATION_METHODS_SESSION_KEY)Úapp_settings)Úget_adapter)ÚAuthenticatorc                 ó  —  |«       5  | j                  t        d«      «      }d d d «       j                  d   j                  ddgik(  sJ ‚t        j
                  j                  |¬«      j                  «       rJ ‚y # 1 sw Y   Œ[xY w)NÚmfa_generate_recovery_codesÚformÚ__all__zTYou cannot generate recovery codes without having two-factor authentication enabled.)Úuser)Úpostr   ÚcontextÚerrorsr	   ÚobjectsÚfilterÚexists)Úauth_clientr   r   Úreauthentication_bypassÚresps        úi/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/allauth/mfa/recovery_codes/tests/test_views.pyÚ8test_generate_recovery_codes_require_other_authenticatorr      s•   € ñ 
!Ó	"ñ HØ×Ñ¤Ð(EÓ FÓGˆ÷Hà�<‰<˜Ñ×&Ñ&ØØbð
ð+ò ð ð ô
 ×$Ñ$×+Ñ+°Ð+Ó6×=Ñ=Ô?Ð?Ð?Ð?÷Hð Hús   ˆA=Á=Bc                 ó  — | j                  t        d«      «      }|d   j                  t        d«      «      sJ ‚| j                  |d   d|i«      }|j                  dk(  sJ ‚| j                  |d   «      }|d   dk(  sJ ‚y )NÚmfa_download_recovery_codesÚlocationÚaccount_reauthenticateÚpasswordé.  zcontent-dispositionz)attachment; filename="recovery-codes.txt")Úgetr   Ú
startswithr   Ústatus_code©r   Úuser_with_recovery_codesÚuser_passwordr   s       r   Útest_download_recovery_codesr&      s�   € Ø�?‰?œ7Ð#@ÓAÓB€DØ�
Ñ×&Ñ&¤wÐ/GÓ'HÔIÐIÐIØ×Ñ˜D Ñ,¨z¸=Ð.IÓJ€DØ×Ñ˜sÒ"Ð"Ð"Ø�?‰?˜4 
Ñ+Ó,€DØÐ%Ñ&Ð*UÒUÐUÑUó    c                 óD  — | j                  t        d«      «      }|d   j                  t        d«      «      sJ ‚| j                  |d   d|i«      }|j                  dk(  sJ ‚| j                  |d   «      }t        |j                  d   «      t        j                  k(  sJ ‚y )NÚmfa_view_recovery_codesr   r   r   r   Úunused_codes)	r    r   r!   r   r"   Úlenr   r   ÚRECOVERY_CODE_COUNTr#   s       r   Útest_view_recovery_codesr-   "   sš   € Ø�?‰?œ7Ð#<Ó=Ó>€DØ�
Ñ×&Ñ&¤wÐ/GÓ'HÔIÐIÐIØ×Ñ˜D Ñ,¨z¸=Ð.IÓJ€DØ×Ñ˜sÒ"Ð"Ð"Ø�?‰?˜4 
Ñ+Ó,€DÜˆt�|‰|˜NÑ+Ó,´×0PÑ0PÒPÐPÑPr'   c                 óö  — d|_         t        j                  j                  |t        j                  j
                  ¬«      j                  «       }|j                  «       d   }| j                  t        d«      «      }|d   j                  t        d«      «      sJ ‚| j                  |d   d|i«      }|j                  dk(  sJ ‚| j                  |d   «      }|d   t        d	«      k(  sJ ‚t        j                  j                  |t        j                  j
                  ¬«      j                  «       }|j                  |«      rJ ‚t        |«      d
k(  sJ ‚d|d   j                  v sJ ‚d|d   j                  v sJ ‚y )NT©r   Útyper   r   r   r   r   r   r)   é   zNew Recovery Codes GeneratedzA new set of)ÚACCOUNT_EMAIL_NOTIFICATIONSr	   r   r    ÚTypeÚRECOVERY_CODESÚwrapÚget_unused_codesr   r!   r   r"   Úvalidate_coder+   ÚsubjectÚbody)r   r$   r%   r   Ú
mailoutboxÚrcÚ	prev_coder   s           r   Útest_generate_recovery_codesr=   +   sv  € ð ,0€HÔ(Ü	×	Ñ	×	"Ñ	"Ø%¬M×,>Ñ,>×,MÑ,Mð 
#ó 
ç
�dƒfð ð ×#Ñ#Ó% aÑ(€Ià�?‰?œ7Ð#@ÓAÓB€DØ�
Ñ×&Ñ&¤wÐ/GÓ'HÔIÐIÐIØ×Ñ˜D Ñ,¨z¸=Ð.IÓJ€DØ×Ñ˜sÒ"Ð"Ð"Ø×Ñ˜D Ñ,Ó-€DØ�
ÑœwÐ'@ÓAÒAÐAÐAä	×	Ñ	×	"Ñ	"Ø%¬M×,>Ñ,>×,MÑ,Mð 
#ó 
ç
�dƒfð ð ×Ñ 	Ô*Ð*Ð*Üˆz‹?˜aÒÐÐØ)¨Z¸©]×-BÑ-BÑBÐBÐBØ˜Z¨™]×/Ñ/Ñ/Ð/Ñ/r'   c                 óž  — | j                  t        d«      |j                  |dœ«      }|j                  dk(  sJ ‚|d   t        d«      k(  sJ ‚| j	                  t        d«      «      }|j
                  d   j                  j                  sJ ‚| j                  t        d«      ddi«      }|j
                  d	   j                  dt        «       j                  d
   gik(  sJ ‚t        j                  j	                  |t        j                  j                  ¬«      }| j                  t        d«      d|j                  «       j!                  «       d   i«      }|j                  dk(  sJ ‚|d   t"        j$                  k(  sJ ‚| j&                  t(           dt*        |j                  dœdt*        t*        t        j                  j                  dœgk(  sJ ‚y )NÚaccount_login)Úloginr   r   r   Úmfa_authenticateÚrequestÚcodeÚ123r   Úincorrect_coder/   r   r   )ÚmethodÚatÚusernameÚmfa)rF   rG   Úidr0   )r   r   rH   r"   r    r   r   Úis_anonymousr   r   Úerror_messagesr	   r   r3   r4   r5   r6   r   ÚLOGIN_REDIRECT_URLÚsessionr   r   )ÚclientÚuser_with_totpr$   r%   r   r;   s         r   Útest_recovery_codes_loginrQ   D   sÀ  € ð �;‰;Ü�Ó Ø ×)Ñ)°}ÑEó€Dð ×Ñ˜sÒ"Ð"Ð"Ø�
ÑœwÐ'9Ó:Ò:Ð:Ð:Ø�:‰:”gÐ0Ó1Ó2€DØ�<‰<˜	Ñ"×'Ñ'×4Ò4Ð4Ð4Ø�;‰;”wÐ1Ó2°V¸U°OÓD€DØ�<‰<˜Ñ×&Ñ&Ø”“×-Ñ-Ð.>Ñ?Ð@ð+ò ð ð ô 
×	Ñ	×	"Ñ	"Ø%¬M×,>Ñ,>×,MÑ,Mð 
#ó 
€Bð �;‰;ÜÐ"Ó#Ø	�—‘“×+Ñ+Ó-¨aÑ0Ð1ó€Dð ×Ñ˜sÒ"Ð"Ð"Ø�
Ñœx×:Ñ:Ò:Ð:Ð:Ø�>‰>Ô<Ñ=Ø¤S°n×6MÑ6MÑNàÜÜÜ!×&Ñ&×5Ñ5ñ		
ðBò ð ñ r'   N)Úunittest.mockr   Údjango.confr   Údjango.urlsr   Úallauth.account.authenticationr   Úallauth.mfar   Úallauth.mfa.adapterr   Úallauth.mfa.modelsr	   r   r&   r-   r=   rQ   © r'   r   ú<module>rZ      s6   ðÝ å  Ý å MÝ $Ý +Ý ,ò
@òVòQò0ó2 r'   