Ë
    ûûàg‘#  ã                   ó  — 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„ Zd	„ Zd
„ Zd„ Zd„ Zej$                  j'                  dddg«      d„ «       Zd„ Zej$                  j'                  dddg«      d„ «       Zy)é    )ÚANY)Úget_user_modelN)Úapp_settings)Ú"AUTHENTICATION_METHODS_SESSION_KEY)ÚFlow)ÚAuthenticatorc                 ó&  —  ||«      5 }| j                   |d«      «      }d|j                  «       d   v sJ ‚| j                   |d«      d|id¬«      }d d d «       j                  «       }|d   d   d   |j                  k(  sJ ‚y # 1 sw Y   Œ4xY w)	Núheadless:mfa:login_webauthnÚrequest_optionsÚdataÚ
credentialúapplication/json©r   Úcontent_typeÚuserÚid)ÚgetÚjsonÚpostÚuser_id)ÚclientÚpasskeyÚwebauthn_authentication_bypassÚheadless_reverser   Úrespr   s          úf/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/allauth/headless/mfa/tests/test_webauthn.pyÚtest_passkey_loginr      s¥   € ñ 
(¨Ó	0ð 
°JØ�z‰zÑ*Ð+HÓIÓJˆØ  D§I¡I£K°Ñ$7Ñ7Ð7Ð7Ø�{‰{ÙÐ:Ó;Ø 
Ð+Ø+ð ó 
ˆ÷
ð �9‰9‹;€DØ�‰<˜Ñ Ñ%¨¯©Ò8Ð8Ñ8÷
ð 
ús   ‰ABÂBc                 óœ   — | j                   |d«      «      }|j                  «       }i }|dk(  r
ddt        ii}|dddt        iidœ|¥k(  sJ ‚y )	Nr
   ÚappÚmetaÚsession_tokenéÈ   r   Ú	publicKey)Ústatusr   )r   r   r   )r   Úheadless_clientr   Údbr   r   r    s          r   Útest_passkey_login_get_optionsr'      ss   € Ø�:‰:Ñ&Ð'DÓEÓF€DØ�9‰9‹;€DØ€DØ˜%Òà�_¤cÐ*ð
ˆð ØØ" [´#Ð$6Ð7ñð ðò ð ñ ó    c                 óv  — | j                   |d«      «      }|j                  dk(  sJ ‚t        j                  |j	                  «       d   d   D �cg c]  }|d   ‘Œ	 c}v sJ ‚ ||«      5  | j                   |d«      «      }|j	                  «       }|d   dk(  sJ ‚|d   d	   t
        k(  sJ ‚	 d d d «        ||«      5 }| j                   |d«      d
|id¬«      }|j                  dk(  sJ ‚	 d d d «       | j                   |d«      «      }|j                  dk(  sJ ‚y c c}w # 1 sw Y   ŒvxY w# 1 sw Y   ŒCxY w)Nz"headless:mfa:manage_recovery_codesé‘  r   Úflowsr   z$headless:mfa:reauthenticate_webauthnr$   r"   r   r   r   r   )r   Ústatus_coder   ÚMFA_REAUTHENTICATEr   r   r   )	Úauth_clientr   Úuser_with_recovery_codesr   r   r   Úflowr   r   s	            r   Útest_reauthenticater1   +   se  € ð �?‰?Ñ+Ð,PÓQÓR€DØ×Ñ˜sÒ"Ð"Ð"Ü×"Ñ"Ø#Ÿy™y›{¨6Ñ2°7Ñ;ö'ØˆˆT‹
ò'ñ ð ð ñ
 
(¨Ó	0ñ 6Ø�‰Ñ/Ð0VÓWÓXˆØ�y‰y‹{ˆØ�H‰~ Ò$Ð$Ð$Ø�F‰|Ð-Ñ.´#Ò5Ð5Ñ5÷	6ñ 
(¨Ó	0ð '°JØ×ÑÙÐCÓDØ 
Ð+Ø+ð  ó 
ˆð
 ×Ñ 3Ò&Ð&Ñ&÷'ð �?‰?Ñ+Ð,PÓQÓR€DØ×Ñ˜sÒ"Ð"Ñ"ùò)'÷
6ð 6ú÷'ð 'ús   ÁDÁ*AD#Â>.D/Ä#D,Ä/D8c                 ód  — |j                   ddœ}| j                   |d«      |d¬«      }|j                  dk(  sJ ‚ |«       5  | j                   |d«      |d¬«      }d d d «       |j                  dk(  sJ ‚|j                  «        |j	                  «       j
                  dk(  sJ ‚y # 1 sw Y   ŒJxY w)NzRenamed!)r   Únameúheadless:mfa:manage_webauthnr   r   r*   r"   )ÚpkÚputr,   Úrefresh_from_dbÚwrapr3   ©r.   r   r   Úreauthentication_bypassr   r   s         r   Útest_update_authenticatorr;   L   sÃ   € ð —*‘* jÑ1€DØ�?‰?ÙÐ7Ó8ØØ'ð ó €Dð ×Ñ˜sÒ"Ð"Ð"Ù	 Ó	"ñ 
Ø�‰ÙÐ;Ó<ØØ+ð ó 
ˆ÷
ð ×Ñ˜sÒ"Ð"Ð"Ø×ÑÔØ�<‰<‹>×Ñ *Ò,Ð,Ñ,÷
ð 
ús   ÁB&Â&B/c                 óz  — d|j                   gi}| j                   |d«      |d¬«      }|j                  dk(  sJ ‚ |«       5  | j                   |d«      |d¬«      }d d d «       |j                  dk(  sJ ‚t        j                  j                  |j                   ¬«      j                  «       rJ ‚y # 1 sw Y   ŒUxY w)NÚauthenticatorsr4   r   r   r*   r"   )r5   )r5   Údeleter,   r   ÚobjectsÚfilterÚexistsr9   s         r   Útest_delete_authenticatorrB   b   sÐ   € ð ˜wŸz™z˜lÐ+€DØ×ÑÙÐ7Ó8ØØ'ð ó €Dð ×Ñ˜sÒ"Ð"Ð"Ù	 Ó	"ñ 
Ø×!Ñ!ÙÐ;Ó<ØØ+ð "ó 
ˆ÷
ð ×Ñ˜sÒ"Ð"Ð"Ü×$Ñ$×+Ñ+¨w¯z©zÐ+Ó:×AÑAÔCÐCÐCÐC÷
ð 
ús   ÁB1Â1B:Úemail_verifiedFTc                 ó°  — |j                   |d«      «      }|r|j                  dk(  sJ ‚	  |«       5  |j                   |d«      «      }|r2|j                  dk(  sJ ‚|j                  «       }|d   d   t        k(  sJ ‚|j                  dk(  sJ ‚ || d«      5 }|j	                   |d«      d|id	¬
«      }t
        j                  j                  t
        j                  j                  | ¬«      j                  «       }	|r|j                  dk(  sJ ‚|	dk(  sJ ‚|j                  dk(  sJ ‚|	dk(  sJ ‚d d d «       d d d «       y # 1 sw Y   ŒxY w# 1 sw Y   y xY w)Nr4   r*   i™  r"   r   Úcreation_optionsFr   r   r   )Útyper   é   r   )r   r,   r   r   r   r   r?   r@   ÚTypeÚWEBAUTHNÚcount)
r   r.   r   Úwebauthn_registration_bypassr:   rC   r   r   r   Úwebauthn_counts
             r   Útest_add_authenticatorrM   w   s  € ð �?‰?Ñ+Ð,JÓKÓL€Dá&4ˆ4×Ñ˜sÒ"Ð=Ð=¸#á	 Ó	"ñ +Ø�‰Ñ/Ð0NÓOÓPˆÙØ×#Ñ# sÒ*Ð*Ð*Ø—9‘9“;ˆDØ˜‘<Ð 2Ñ3´sÒ:Ð:Ð:à×#Ñ# sÒ*Ð*Ð*á)¨$°Ó6ð 	+¸*Ø×#Ñ#Ù Ð!?Ó@Ø" JÐ/Ø/ð $ó ˆDô
 +×2Ñ2×9Ñ9Ü"×'Ñ'×0Ñ0°tð :ó ç‰e‹gð ñ Ø×'Ñ'¨3Ò.Ð.Ð.Ø%¨Ò*Ð*Ð*à×'Ñ'¨3Ò.Ð.Ð.Ø%¨Ò*Ð*Ð*÷	+÷+ð +÷	+ð 	+ú÷+ð +ús%   ³A&EÂBE Ä/EÅ E		ÅEÅEc                 ó0  — | j                   |d«      |j                  |dœd¬«      }|j                  dk(  sJ ‚|j                  «       }|d   d   D �cg c]  }|j	                  d«      sŒ|‘Œ }	}t        |	«      d	k(  sJ ‚|	d
   }
|
dddgdœk(  sJ ‚ ||«      5 }| j	                   |d«      «      }d|j                  «       d   v sJ ‚| j                   |d«      d|id¬«      }d d d «       |j                  «       }|j                  dk(  sJ ‚|d   d   d   |j                  k(  sJ ‚| j                  «       t           dt        |j                  j                  dœdt        t        t        j                  j                  dœgk(  sJ ‚y c c}w # 1 sw Y   Œ©xY w)Nzheadless:account:login)ÚusernameÚpasswordr   r   r*   r   r+   Ú
is_pendingrG   r   Úmfa_authenticateTÚwebauthn)r   rQ   Útypesz"headless:mfa:authenticate_webauthnr   r   r"   r   r   rP   )ÚmethodÚatrO   Úmfa)rU   rV   r   rF   )r   rO   r,   r   r   Úlenr   Úheadless_sessionr   r   r   r   rH   rI   )r   r   Úuser_passwordr   r   r   r   r   ÚfÚpending_flowsÚpending_flowr   s               r   Útest_2fa_loginr^   ž   sË  € ð �;‰;ÙÐ1Ó2àŸ™Ø%ñ
ð (ð ó €Dð ×Ñ˜sÒ"Ð"Ð"Ø�9‰9‹;€DØ $ V¡¨WÑ 5ÖM˜1¸¿¹¸|Õ9L’QÐM€MÐMÜˆ}Ó Ò"Ð"Ð"Ø  Ñ#€LØØ ØØ�ñò ð ð ñ
 
(¨Ó	0ð 
°JØ�z‰zÑ*Ð+OÓPÓQˆØ  D§I¡I£K°Ñ$7Ñ7Ð7Ð7Ø�{‰{ÙÐAÓBØ 
Ð+Ø+ð ó 
ˆ÷
ð �9‰9‹;€DØ×Ñ˜sÒ"Ð"Ð"Ø�‰<˜Ñ Ñ%¨¯©Ò8Ð8Ð8Ø×"Ñ"Ó$Ô%GÑHØ¤S°g·l±l×6KÑ6KÑLØ¤¬3¼×8JÑ8J×8SÑ8SÑTðMò ð ñ ùò' N÷
ð 
ús   ÁFÁ*FÂAFÆFÚlogin_on_email_verificationc                 óÜ  — t         j                  j                  |_        d|_        ||_        | j                   |d«      dddœd¬«      }|j                  dk(  sJ ‚|j                  «       d	   d
   D �	cg c]  }	|	j                  d«      sŒ|	‘Œ }
}	t        |
«      dk(  sJ ‚|
d   }	|	d   t        j                  j                  k(  sJ ‚ || |«      }| j                   |d«      d|id¬«      }|j                  dk(  sJ ‚|j                  «       d	   d
   D �	cg c]  }	|	j                  d«      sŒ|	‘Œ }
}	t        |
«      dk(  sJ ‚|
d   }	|	d   t        j                  j                  k(  sJ ‚| j                   |d«      «      }|j                  «       }d|d	   v sJ ‚t        «       j                   j                  d¬«      } ||d«      5 }| j#                   |d«      d|dœd¬«      }d d d «       |j                  «       }|j                  dk(  sJ ‚|d   d   sJ ‚t$        j                   j                  |¬«      }|j'                  «       j(                  dk(  sJ ‚y c c}	w c c}	w # 1 sw Y   Œ~xY w)NTzheadless:mfa:signup_webauthnzpass@key.orgr   )ÚemailrO   r   r   r*   r   r+   rQ   rG   r   r   zheadless:account:verify_emailÚkeyrE   )ra   zSome key)r3   r   r"   r    Úis_authenticated)r   )r   ÚEmailVerificationMethodÚ	MANDATORYÚACCOUNT_EMAIL_VERIFICATIONÚ*ACCOUNT_EMAIL_VERIFICATION_BY_CODE_ENABLEDÚ#ACCOUNT_LOGIN_ON_EMAIL_CONFIRMATIONr   r,   r   r   rX   r   ÚVERIFY_EMAILÚvalueÚMFA_SIGNUP_WEBAUTHNr   r?   r6   r   r8   r3   )r   r&   rK   r   ÚsettingsÚ get_last_email_verification_codeÚ
mailoutboxr_   r   r0   r\   Úcoder   r   r   Úauthenticators                   r   Útest_passkey_signuprq   É   s¦  € ô +7×*NÑ*N×*XÑ*X€HÔ'Ø:>€HÔ7à3N€HÔ0ð �;‰;ÙÐ7Ó8Ø%°9Ñ=Ø'ð ó €Dð ×Ñ˜sÒ"Ð"Ð"àŸ™› VÑ,¨WÑ5öØ¸¿¹À,Õ9OŠð€Mð ô ˆ}Ó Ò"Ð"Ð"Ø˜Ñ€DØ�‰:œ×*Ñ*×0Ñ0Ò0Ð0Ð0ñ ,¨F°JÓ?€DØ�;‰;ÙÐ8Ó9Ø�Tˆ]Ø'ð ó €Dð
 ×Ñ˜sÒ"Ð"Ð"ð Ÿ™› VÑ,¨WÑ5öØ¸¿¹À,Õ9OŠð€Mð ô ˆ}Ó Ò"Ð"Ð"Ø˜Ñ€DØ�‰:œ×1Ñ1×7Ñ7Ò7Ð7Ð7ð �:‰:Ñ&Ð'EÓFÓG€DØ�9‰9‹;€DØ  f¡Ñ-Ð-Ð-ô Ó×#Ñ#×'Ñ'¨nÐ'Ó=€DÙ	% d¨DÓ	1ð 
°ZØ�z‰zÙÐ;Ó<Ø$°JÑ?Ø+ð ó 
ˆ÷
ð �9‰9‹;€DØ×Ñ˜sÒ"Ð"Ð"Ø�‰<Ð*Ò+Ð+Ð+Ü!×)Ñ)×-Ñ-°4Ð-Ó8€MØ×ÑÓ×$Ñ$¨
Ò2Ð2Ñ2ùòWùò"÷
ð 
ús$   Á4IÂIÄIÄ-IÇI"É"I+)Úunittest.mockr   Údjango.contrib.authr   ÚpytestÚallauth.accountr   Úallauth.account.authenticationr   Úallauth.headless.constantsr   Úallauth.mfa.modelsr   r   r'   r1   r;   rB   ÚmarkÚparametrizerM   r^   rq   © r(   r   ú<module>r|      s“   ðÝ å .ã å (Ý MÝ +Ý ,ò9òò#òB-ò,Dð* ‡�×ÑÐ)¨E°4¨=Ó9ñ#+ó :ð#+òL(ðV ‡�×ÑÐ6¸À¸ÓFñC3ó GñC3r(   