Ë
    ûûàge"  ã                   óT  — d dl Z d dlmZ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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ej0                  j3                  ddg«      ej0                  j3                  dddg«      d„ «       «       Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z d„ Z!d„ Z"d„ Z#y)é    N)ÚANYÚpatch)Úsettings)Úcache)ÚClient)Úreverse)ÚassertTemplateUsed)Úapp_settings)Ú"AUTHENTICATION_METHODS_SESSION_KEY)Úget_adapter)ÚAuthenticatorc                 ó  —  |«       5  | j                  t        d«      «      }| j                  t        d«      ddi«      }d d d «       j                  d   j                  dt        «       j                  d   gik(  sJ ‚y # 1 sw Y   Œ@xY w)NÚmfa_activate_totpÚcodeÚ123ÚformÚincorrect_code)Úgetr   ÚpostÚcontextÚerrorsr   Úerror_messages)Úauth_clientÚreauthentication_bypassÚresps      ú_/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/allauth/mfa/totp/tests/test_views.pyÚ&test_activate_totp_with_incorrect_coder      s’   € Ù	 Ó	"ñ 
Ø�‰œwÐ':Ó;Ó<ˆØ×ÑÜÐ'Ó(à˜ðó
ˆ÷
ð �<‰<˜Ñ×&Ñ&Ø”“×-Ñ-Ð.>Ñ?Ð@ð+ò ð ñ ÷
ð 
ús   ˆ8A?Á?BÚemail_verifiedFÚmethodr   r   c                 óÜ   —  |«       5  |dk(  r| j                  t        d«      «      }n| j                  t        d«      ddi«      }d d d «       d   t        d«      k(  sJ ‚y # 1 sw Y   ŒxY w)Nr   r   r   r   ÚlocationÚ	mfa_index)r   r   r   )r   ÚuserÚtotp_validation_bypassr   r   r   s         r   Ú(test_activate_totp_with_unverified_emailr%       st   € ñ
 
!Ó	"ñ SØ�UŠ?Ø—?‘?¤7Ð+>Ó#?Ó@‰Dà×#Ñ#¤GÐ,?Ó$@À6È5À/ÓRˆD÷	Sð
 �
Ñœw {Ó3Ò3Ð3Ñ3÷Sð Sús   ˆ>A"Á"A+c                 ó¦  — d|_          |«       5  | j                  t        d«      «      } |«       5  | j                  t        d«      ddi«      }d d d «       d d d «       d   t        d«      k(  sJ ‚t        j
                  j                  |t        j                  j                  ¬«      j                  «       sJ ‚t        j
                  j                  |t        j                  j                  ¬«      j                  «       sJ ‚t        |«      dk(  sJ ‚d	|d
   j                  v sJ ‚d|d
   j                  v sJ ‚y # 1 sw Y   ŒíxY w# 1 sw Y   ŒñxY w)NTr   r   r   r!   Úmfa_view_recovery_codes)r#   Útypeé   zAuthenticator App Activatedr   zAuthenticator app activated.)ÚACCOUNT_EMAIL_NOTIFICATIONSr   r   r   r   ÚobjectsÚfilterÚTypeÚTOTPÚexistsÚRECOVERY_CODESÚlenÚsubjectÚbody)r   r$   r#   r   r   Ú
mailoutboxr   s          r   Útest_activate_totp_successr5   -   sZ  € ð ,0€HÔ(Ù	 Ó	"ñ Ø�‰œwÐ':Ó;Ó<ˆÙ#Ó%ñ 	Ø×#Ñ#ÜÐ+Ó,à˜EðóˆD÷	÷ð �
ÑœwÐ'@ÓAÒAÐAÐAÜ× Ñ ×'Ñ'Øœ×*Ñ*×/Ñ/ð (ó ç�fƒhðð ð ô × Ñ ×'Ñ'Øœ×*Ñ*×9Ñ9ð (ó ç�fƒhðð ð ô ˆz‹?˜aÒÐÐØ(¨J°q©M×,AÑ,AÑAÐAÐAØ)¨Z¸©]×-?Ñ-?Ñ?Ð?Ñ?÷!	ð 	ú÷ð ús"   �"E±D;ÁEÄ;E	Å EÅEc                 óÞ  — d|_         | j                  t        d«      «      }|j                  dk(  sJ ‚|d   j	                  t        d«      «      sJ ‚| j                  |d   d|i«      }|j                  dk(  sJ ‚| j                  t        d«      «      }|j                  dk(  sJ ‚|d   t        d«      k(  sJ ‚t        |«      dk(  sJ ‚d	|d
   j                  v sJ ‚d|d
   j                  v sJ ‚y )NTÚmfa_deactivate_totpé.  r!   Úaccount_reauthenticateÚpasswordr"   r)   zAuthenticator App Deactivatedr   zAuthenticator app deactivated.)	r*   r   r   Ústatus_codeÚ
startswithr   r1   r2   r3   )r   Úuser_with_totpÚuser_passwordr   r4   r   s         r   Útest_deactivate_totp_successr?   K   s  € ð ,0€HÔ(Ø�?‰?œ7Ð#8Ó9Ó:€DØ×Ñ˜sÒ"Ð"Ð"Ø�
Ñ×&Ñ&¤wÐ/GÓ'HÔIÐIÐIØ×Ñ˜D Ñ,¨z¸=Ð.IÓJ€DØ×Ñ˜sÒ"Ð"Ð"Ø×ÑœGÐ$9Ó:Ó;€DØ×Ñ˜sÒ"Ð"Ð"Ø�
Ñœw {Ó3Ò3Ð3Ð3Üˆz‹?˜aÒÐÐØ*¨j¸©m×.CÑ.CÑCÐCÐCØ+¨z¸!©}×/AÑ/AÑAÐAÑAó    c                 óZ   — | j                  t        d«      «      }|j                  dk(  sJ ‚y )Nr7   i”  ©r   r   r;   )r   r   s     r   Ú&test_user_without_totp_deactivate_totprC   \   s*   € Ø�?‰?œ7Ð#8Ó9Ó:€DØ×Ñ˜sÒ"Ð"Ñ"r@   c                 ó¸   —  |«       5  | j                  t        d«      «      }d d d «       j                  dk(  sJ ‚|d   t        d«      k(  sJ ‚y # 1 sw Y   Œ.xY w)Nr   r8   r!   r7   rB   )r   r=   r   r   s       r   Ú!test_user_with_totp_activate_totprE   a   s`   € ñ 
!Ó	"ñ =Ø�‰œwÐ':Ó;Ó<ˆ÷=à×Ñ˜sÒ"Ð"Ð"Ø�
ÑœwÐ'<Ó=Ò=Ð=Ñ=÷=ð =ús   ˆAÁA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 ‚ |«       5  | j                  t        d«      ddi«      }d d d «       |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 # 1 sw Y   Œ„xY w)NÚaccount_login©Úloginr:   r8   r!   Úmfa_authenticateÚrequestr   r   r   r   r:   )r   ÚatÚusernameÚmfa)r   rL   Úidr(   )r   r   rM   r;   r   r   r#   Úis_anonymousr   r   r   r   ÚLOGIN_REDIRECT_URLÚsessionr   r   r   r-   r.   )Úclientr=   r>   r$   r   s        r   Útest_totp_loginrT   j   s‘  € Ø�;‰;Ü�Ó Ø ×)Ñ)°}ÑEó€Dð ×Ñ˜sÒ"Ð"Ð"Ø�
ÑœwÐ'9Ó:Ò:Ð:Ð:Ø�:‰:”gÐ0Ó1Ó2€DØ�<‰<˜	Ñ"×'Ñ'×4Ò4Ð4Ð4Ø�;‰;”wÐ1Ó2°V¸U°OÓD€DØ�<‰<˜Ñ×&Ñ&Ø”“×-Ñ-Ð.>Ñ?Ð@ð+ò ð ð ñ 
 Ó	!ñ 
Ø�{‰{ÜÐ&Ó'Ø�UˆOó
ˆ÷
ð
 ×Ñ˜sÒ"Ð"Ð"Ø�
Ñœx×:Ñ:Ò:Ð:Ð:Ø�>‰>Ô<Ñ=Ø¤S°n×6MÑ6MÑNØ¤¬3¼×8JÑ8J×8OÑ8OÑPðBò ð ñ ÷
ð 
ús   Ã&FÆFc                 óX  — d| _         |j                  t        d«      |j                  |dœ«      }|j                  dk(  sJ ‚|d   t        d«      k(  sJ ‚t        d«      D ]I  }|dk\  }|j                  t        d«      dd	i«      }|j                  d
   j                  d|rdndgik(  rŒIJ ‚ y )Né   rG   rH   r8   r!   rJ   é   r   Úwrongr   z0Too many failed login attempts. Try again later.zIncorrect code.)ÚACCOUNT_LOGIN_ATTEMPTS_LIMITr   r   rM   r;   Úranger   r   )r   Úenable_cacher=   r>   rS   r   ÚiÚ	is_lockeds           r   Útest_totp_login_rate_limitr^   „   sÚ   € ð -.€HÔ)Ø�;‰;Ü�Ó Ø ×)Ñ)°}ÑEó€Dð ×Ñ˜sÒ"Ð"Ð"Ø�
ÑœwÐ'9Ó:Ò:Ð:Ð:Ü�1‹Xò 
ˆØ˜‘Fˆ	Ø�{‰{ÜÐ&Ó'à˜ðó
ˆð �|‰|˜FÑ#×*Ñ*Øñ !ñ Gà*ð	ð/
ó 
ð 	
ð 
ñ
r@   c                 óš  — t        d«      5 }d|_        | j                  t        d«      «      }|j                  dk(  sJ ‚|d   j                  t        d«      «      sJ ‚| j                  |d   d|i«      }|j                  dk(  sJ ‚| j                  t        d«      «      }|j                  d   j                  d	t        «       j                  d
   gik(  sJ ‚| j                  t        d«      «      }|j                  dk(  sJ ‚|j                  d   j                  d	t        «       j                  d
   gik(  sJ ‚	 d d d «       y # 1 sw Y   y xY w)Nz>allauth.mfa.adapter.DefaultMFAAdapter.can_delete_authenticatorFr7   r8   r!   r9   r:   r   Ú__all__Úcannot_delete_authenticatoréÈ   )r   Úreturn_valuer   r   r;   r<   r   r   r   r   r   )r   r=   r>   Úcda_mockr   s        r   Útest_cannot_deactivate_totpre   ¡   s\  € Ü	ØHó
ð 
à	Ø %ˆÔØ�‰œwÐ'<Ó=Ó>ˆØ×Ñ 3Ò&Ð&Ð&Ø�JÑ×*Ñ*¬7Ð3KÓ+LÔMÐMÐMØ×Ñ  ZÑ 0°:¸}Ð2MÓNˆØ×Ñ 3Ò&Ð&Ð&Ø�‰œwÐ'<Ó=Ó>ˆà�|‰|˜FÑ#×*Ñ*Øœ›×4Ñ4Ð5RÑSÐTð/
ò 
ð 	
ð 
ð ×Ñ¤Ð(=Ó >Ó?ˆØ×Ñ 3Ò&Ð&Ð&Ø�|‰|˜FÑ#×*Ñ*Øœ›×4Ñ4Ð5RÑSÐTð/
ò 
ð 	
ñ 
÷#
÷ 
ñ 
ús   ŒD+EÅE
c                 óN  — dD �]  \  }}}|rt        j                  «        t        «       }|j                  t	        d«      | j
                  |dœ«      }|j                  dk(  sJ ‚|d   t	        d«      k(  sJ ‚ |«       5  |j                  t	        d«      d|i«      }d d d «       |r*|j                  dk(  sJ ‚|d   t        j                  k(  rŒËJ ‚|j                  dk(  sJ ‚|j                  d	   j                  dt        «       j                  d
   gik(  r�ŒJ ‚ y # 1 sw Y   Œ€xY w)N))r   FT©r   FF)Ú456FTrg   )r   TTrG   rH   r8   r!   rJ   r   rb   r   r   )r   Úclearr   r   r   rM   r;   r   rQ   r   r   r   r   )	r=   r>   r$   r[   r   Ú
time_lapseÚexpect_successrS   r   s	            r   Útest_totp_code_reuserl   ¸   s@  € ð-ó #Ñ(ˆˆj˜.ñ Ü�K‰KŒMÜ“ˆØ�{‰{Ü�OÓ$Ø$×-Ñ-¸=ÑIó
ˆð ×Ñ 3Ò&Ð&Ð&Ø�JÑ¤7Ð+=Ó#>Ò>Ð>Ð>ñ $Ó%ñ 	Ø—;‘;ÜÐ*Ó+Ø˜�óˆD÷	ñ
 Ø×#Ñ# sÒ*Ð*Ð*Ø˜
Ñ#¤x×'BÑ'BÓBÐBÐBà×#Ñ# sÒ*Ð*Ð*Ø—<‘< Ñ'×.Ñ.Øœ›×5Ñ5Ð6FÑGÐHð3ô ð ð ñC#÷.	ð 	ús   Á>DÄD$	c                 ó  — | j                  t        d«      |j                  |dœ«      }|j                  dk(  sJ ‚|d   t        d«      k(  sJ ‚| j	                  t        d«      «      }|j                  dk(  sJ ‚t        |d«       t        dt        j                  «       d	t        j                  z  z   ¬
«      5  | j	                  t        d«      «      }|j                  dk(  sJ ‚|d   t        d«      k(  sJ ‚	 d d d «       y # 1 sw Y   y xY w)NrG   rH   r8   r!   rJ   rb   zmfa/authenticate.htmlz+allauth.account.internal.stagekit.time.timegš™™™™™ñ?)rc   )
r   r   rM   r;   r   r	   r   Útimer
   ÚLOGIN_TIMEOUT)rS   r=   r>   r   s       r   Útest_totp_stage_expiresrp   á   s  € Ø�;‰;Ü�Ó Ø ×)Ñ)°}ÑEó€Dð ×Ñ˜sÒ"Ð"Ð"Ø�
ÑœwÐ'9Ó:Ò:Ð:Ð:Ø�:‰:”gÐ0Ó1Ó2€DØ×Ñ˜sÒ"Ð"Ð"Ü�tÐ4Ô5Ü	Ø5Ü—Y‘Y“[ 3¬×)CÑ)CÑ#CÑCô
ñ <ð �z‰zœ'Ð"4Ó5Ó6ˆØ×Ñ 3Ò&Ð&Ð&Ø�JÑ¤7¨?Ó#;Ò;Ð;Ñ;÷<÷ <ñ <ús   Â7?D Ä D	)$rn   Úunittest.mockr   r   Údjango.confr   Údjango.core.cacher   Údjango.testr   Údjango.urlsr   ÚpytestÚpytest_django.assertsr	   Úallauth.accountr
   Úallauth.account.authenticationr   Úallauth.mfa.adapterr   Úallauth.mfa.modelsr   r   ÚmarkÚparametrizer%   r5   r?   rC   rE   rT   r^   re   rl   rp   © r@   r   ú<module>r      s£   ðÛ ß $å  Ý #Ý Ý ã Ý 4å (Ý MÝ +Ý ,òð ‡�×ÑÐ)¨E¨7Ó3Ø‡�×Ñ˜ E¨6 ?Ó3ñ4ó 4ó 4ð4ò@ò<Bò"#ò
>òò4
ò:
ò.&óR<r@   