Ë
    ûûàgC  ã                   ól  — 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	„ Zd
„ 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g«      ej,                  j/                  dddg«      d„ «       «       Zd„ Zd„ Zy)é    )ÚANY)Úsettings)Úget_user_model)ÚreverseN)ÚassertTemplateUsed)Ú"AUTHENTICATION_METHODS_SESSION_KEY)ÚAuthenticatorc                 óX  —  ||«      5 }| j                  t        d«      d¬«      }d|j                  «       v sJ ‚| j                  t        d«      d|i¬«      }d d d «       d   t        j
                  k(  sJ ‚| j                  t           t        t        dd	d
dœgk(  sJ ‚y # 1 sw Y   ŒIxY w)NÚmfa_login_webauthnÚXMLHttpRequest©ÚHTTP_X_REQUESTED_WITHÚrequest_optionsÚ
credential©ÚdataÚlocationÚmfaTÚwebauthn)ÚatÚidÚmethodÚpasswordlessÚtype)	Úgetr   ÚjsonÚpostr   ÚLOGIN_REDIRECT_URLÚsessionr   r   )ÚclientÚpasskeyÚwebauthn_authentication_bypassr   Úresps        úc/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/allauth/mfa/webauthn/tests/test_views.pyÚtest_passkey_loginr%      sÊ   € Ù	'¨Ó	0ð 
°JØ�z‰zÜÐ(Ó)ÐAQð ó 
ˆð ! D§I¡I£KÑ/Ð/Ð/Ø�{‰{ÜÐ(Ó)°¸zÐ0Jð ó 
ˆ÷
ð �
Ñœx×:Ñ:Ò:Ð:Ð:Ø�>‰>Ô<Ñ=äÜØØ Øñ	
ðBò ð ñ ÷
ð 
ús   ‰AB Â B)c                 ó¤  — | j                  t        d«      «      }|j                  dk(  sJ ‚|d   j                  t        d«      «      sJ ‚| j                  t        d«      «      }t	        |d«        ||«      5 }| j                  t        d«      «      }| j                  t        d«      |dd	œ¬
«      }d d d «       |d   dk(  sJ ‚y # 1 sw Y   ŒxY w)NÚmfa_view_recovery_codesé.  r   Úaccount_reauthenticateÚmfa_reauthenticatezmfa/reauthenticate.htmlÚmfa_reauthenticate_webauthnz/redir)r   Únextr   )r   r   Ústatus_codeÚ
startswithr   r   )Úauth_clientr!   Úuser_with_recovery_codesr"   r#   r   s         r$   Útest_reauthenticater1   #   sÝ   € ð �?‰?œ7Ð#<Ó=Ó>€DØ×Ñ˜sÒ"Ð"Ð"Ø�
Ñ×&Ñ&¤wÐ/GÓ'HÔIÐIÐIØ�?‰?œ7Ð#7Ó8Ó9€DÜ�tÐ6Ô7á	'¨Ó	0ð 
°JØ�‰ÜÐ1Ó2ó
ˆð ×ÑÜÐ1Ó2Ø *°HÑ=ð  ó 
ˆ÷	
ð �
Ñ˜xÒ'Ð'Ñ'÷
ð 
ús   Á9:CÃCc                 ó^   — | j                  t        d«      «      }|d   t        d«      k(  sJ ‚y )Nr   r   Úaccount_login)r   r   )r    r#   s     r$   Ú6test_get_passkey_login_challenge_redirects_if_not_ajaxr4   7   s.   € Ø�:‰:”gÐ2Ó3Ó4€DØ�
Ñœw Ó7Ò7Ð7Ñ7ó    c                 óº   — | j                  t        d«      d¬«      }|j                  dk(  sJ ‚|d   dk(  sJ ‚|j                  «       }|ddt        d	g d
dœiik(  sJ ‚y )Nr   r   r   éÈ   zcontent-typezapplication/jsonr   Ú	publicKeyÚ
testserverÚ	preferred)Ú	challengeÚrpIdÚallowCredentialsÚuserVerification)r   r   r-   r   r   )r    Údbr#   r   s       r$   Ú test_get_passkey_login_challenger@   <   s‰   € Ø�:‰:ÜÐ$Ó%Ð=Mð ó €Dð ×Ñ˜sÒ"Ð"Ð"Ø�ÑÐ#5Ò5Ð5Ð5Ø�9‰9‹;€DØØØÜ Ø$Ø$&Ø$/ñ	ð
ð	ò 	ð 	ñ 	r5   c                 óf   — | j                  t        d«      ddi¬«      }|d   t        d«      k(  sJ ‚y )Nr   r   z{}r   r   r3   )r   r   )r    r!   r#   s      r$   Útest_invalid_passkey_loginrB   O   s7   € Ø�;‰;”wÐ3Ó4¸LÈ$Ð;Oˆ;ÓP€DØ�
Ñœw Ó7Ò7Ð7Ñ7r5   c                 ó  — | j                  t        dd|j                  i¬«      «      }|d   j                  t        d«      «      sJ ‚ |«       5  | j                  t        dd|j                  i¬«      «      }t	        |d«       | j                  t        dd|j                  i¬«      ddi¬	«      }|d   t        d
«      k(  sJ ‚|j                  «        |j                  d   dk(  sJ ‚t        |«      dk(  sJ ‚	 d d d «       y # 1 sw Y   y xY w)NÚmfa_edit_webauthnÚpk©Úkwargsr   r)   zmfa/webauthn/edit_form.htmlÚnameÚRenamedr   Úmfa_list_webauthn)	r   r   rE   r.   r   r   Úrefresh_from_dbr   Ústr©r/   r!   Úreauthentication_bypassr#   s       r$   Útest_rename_keyrO   T   s  € Ø�?‰?œ7Ð#6ÀÀgÇjÁjÐ?QÔRÓS€DØ�
Ñ×&Ñ&¤wÐ/GÓ'HÔIÐIÐIÙ	 Ó	"ñ 
)Ø�‰œwÐ':ÀDÈ'Ï*É*ÐCUÔVÓWˆÜ˜4Ð!>Ô?Ø×ÑÜÐ'°°w·z±zÐ0BÔCØ˜)Ð$ð  ó 
ˆð �JÑ¤7Ð+>Ó#?Ò?Ð?Ð?Ø×ÑÔ!Ø�|‰|˜FÑ# yÒ0Ð0Ð0Ü�7‹|˜yÒ(Ð(Ñ(÷
)÷ 
)ñ 
)ús   ÁB(DÄD
c                 óª  — | j                  t        dd|j                  i¬«      «      }|d   j                  t        d«      «      sJ ‚ |«       5  | j                  t        dd|j                  i¬«      «      }t	        |d«       | j                  t        dd|j                  i¬«      «      }|d   t        d«      k(  sJ ‚	 d d d «       y # 1 sw Y   y xY w)NÚmfa_remove_webauthnrE   rF   r   r)   z.mfa/webauthn/authenticator_confirm_delete.htmlrJ   )r   r   rE   r.   r   r   rM   s       r$   Útest_remove_keyrR   d   sÍ   € Ø�?‰?œ7Ð#8À$ÈÏ
É
ÐASÔTÓU€DØ�
Ñ×&Ñ&¤wÐ/GÓ'HÔIÐIÐIÙ	 Ó	"ñ @Ø�‰ÜÐ)°4¸¿¹Ð2DÔEó
ˆô 	˜4Ð!QÔRØ×ÑÜÐ)°4¸¿¹Ð2DÔEó
ˆð �JÑ¤7Ð+>Ó#?Ò?Ð?Ñ?÷@÷ @ñ @ús   ÁA0C	Ã	Cr   FTc                 óB  —  |||«      5 }| j                  t        d«      d|i¬«      }|d   j                  t        d«      «      sJ ‚	 d d d «        |«       5  | j                  t        d«      «      }t	        |d«        |||«      5 }| j                  t        d«      ||rdndd	œ¬«      }|d   j                  t        d
«      «      sJ ‚	 d d d «       t
        j                  j                  |t
        j                  j                  ¬«      }|j                  «       j                  |k(  sJ ‚t
        j                  j                  |t
        j                  j                  ¬«      j                  «        d d d «       y # 1 sw Y   �Œ5xY w# 1 sw Y   Œ¾xY w# 1 sw Y   y xY w)NÚmfa_add_webauthnr   r   r   r)   zmfa/webauthn/add_form.htmlÚonÚ )r   r   r'   )Úuserr   )r   r   r.   r   r   r	   ÚobjectsÚTypeÚWEBAUTHNÚwrapÚis_passwordlessÚfilterÚRECOVERY_CODESÚexists)r/   rW   Úwebauthn_registration_bypassrN   r   r   r#   Úauthenticators           r$   Útest_add_keyrb   r   s¡  € ñ 
& d¨LÓ	9ð N¸ZØ×ÑÜÐ&Ó'¨|¸ZÐ.Hð  ó 
ˆð �JÑ×*Ñ*¬7Ð3KÓ+LÔMÐMÑM÷	Nñ
 
!Ó	"ñ Ø�‰œwÐ'9Ó:Ó;ˆÜ˜4Ð!=Ô>Ù)¨$°Ó=ð 	SÀØ×#Ñ#ÜÐ*Ó+à",Ù,8¡D¸bñð $ó ˆDð ˜
Ñ#×.Ñ.¬wÐ7PÓ/QÔRÐRÑR÷	Sô &×-Ñ-×1Ñ1ØœM×.Ñ.×7Ñ7ð 2ó 
ˆð ×!Ñ!Ó#×3Ñ3°|ÒCÐCÐCÜ×Ñ×$Ñ$ØœM×.Ñ.×=Ñ=ð 	%ó 	
ç
‰&Œ(÷%ð ÷Nñ Nú÷	Sð 	Sú÷ð ús1   Š>E<Á0FÂAF	ÃB'FÅ<FÆ	F	ÆFÆFc                 óP   — | j                  t        d«      «      }t        |d«       y )NrJ   z$mfa/webauthn/authenticator_list.html)r   r   r   )r/   r#   s     r$   Útest_list_keysrd   ”   s!   € Ø�?‰?œ7Ð#6Ó7Ó8€DÜ�tÐCÕDr5   Úemail_verifiedr   r   r   c                 óä   —  ||d«      5 }|dk(  r| j                  t        d«      «      }n| j                  t        d«      d|i¬«      }|d   t        d«      k(  sJ ‚	 d d d «       y # 1 sw Y   y xY w)NFr   rT   r   r   r   Ú	mfa_index)r   r   r   )r/   rW   r`   rN   r   r   r#   s          r$   Útest_add_with_unverified_emailrh   ™   s   € ñ
 
& d¨EÓ	2ð 8°jØ�UŠ?Ø—?‘?¤7Ð+=Ó#>Ó?‰Dà×#Ñ#ÜÐ*Ó+°<ÀÐ2Lð $ó ˆDð �JÑ¤7¨;Ó#7Ò7Ð7Ñ7÷8÷ 8ñ 8ús   ŠAA&Á&A/c                 ó¢  — | j                  t        d«      dddœ¬«      }|d   t        d«      k(  sJ ‚| j                  |d   «      }|j                  dk(  sJ ‚t        «       j                  j                  d¬	«      } ||d
«      5 }| j                  t        d«      d|i¬«      }d d d «       |d   t        j                  k(  sJ ‚y # 1 sw Y   Œ"xY w)NÚaccount_signup_by_passkeyzpass@key.orgr!   )ÚemailÚusernamer   r   Úmfa_signup_webauthnr7   )rk   Tr   )r   r   r-   r   rX   r   r   r   )r    r?   r`   r#   rW   r   s         r$   Útest_passkey_signuprn   ¨   sã   € Ø�;‰;ÜÐ+Ó,Ø%°9Ñ=ð ó €Dð �
ÑœwÐ'<Ó=Ò=Ð=Ð=Ø�;‰;�t˜JÑ'Ó(€DØ×Ñ˜sÒ"Ð"Ð"ÜÓ×#Ñ#×'Ñ'¨nÐ'Ó=€DÙ	% d¨DÓ	1ð 
°ZØ�{‰{ÜÐ)Ó*°,À
Ð1Kð ó 
ˆ÷
ð �
Ñœx×:Ñ:Ò:Ð:Ñ:÷	
ð 
ús   ÂCÃCc                 óZ  — | j                  t        d«      |j                  |dœ«      }|j                  dk(  sJ ‚|d   t        d«      k(  sJ ‚ ||«      5 }| j	                  t        d«      «      }|j                  dk(  sJ ‚| j                  t        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)Nr3   )ÚloginÚpasswordr(   r   Úmfa_authenticater7   r   rq   )r   r   rl   r   )r   r   r   r   )r   r   rl   r-   r   r   r   r   r   r   r	   rY   rZ   )r    Úuser_with_passkeyr!   Úuser_passwordr"   r#   r   s          r$   Útest_webauthn_loginru   ¸   s7  € ð �;‰;Ü�Ó Ø#×,Ñ,¸-ÑHó€Dð ×Ñ˜sÒ"Ð"Ð"Ø�
ÑœwÐ'9Ó:Ò:Ð:Ð:Ù	'¨Ó	0ð T°JØ�z‰zœ'Ð"4Ó5Ó6ˆØ×Ñ 3Ò&Ð&Ð&Ø�{‰{œ7Ð#5Ó6¸ÀzÐ8RÓSˆ÷Tð ×Ñ˜sÒ"Ð"Ð"Ø�
Ñœx×:Ñ:Ò:Ð:Ð:Ø�>‰>Ô<Ñ=Ø¤SÐ6G×6PÑ6PÑQØ¤¬3¼×8JÑ8J×8SÑ8SÑTðBò ð ñ ÷Tð Tús   ÁA	D!Ä!D*)Úunittest.mockr   Údjango.confr   Údjango.contrib.authr   Údjango.urlsr   ÚpytestÚpytest_django.assertsr   Úallauth.account.authenticationr   Úallauth.mfa.modelsr	   r%   r1   r4   r@   rB   rO   rR   ÚmarkÚparametrizerb   rd   rh   rn   ru   © r5   r$   ú<module>r�      sÀ   ðÝ å  Ý .Ý ã Ý 4å MÝ ,òò*(ò(8ò
ò&8ò
)ò @ð ‡�×Ñ˜¨%°¨Ó7ñó 8ðòBEð
 ‡�×ÑÐ)¨E¨7Ó3Ø‡�×Ñ˜ E¨6 ?Ó3ñ
8ó 4ó 4ð
8ò;ó r5   