
    f                     H   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 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y)    )ANY)settings)reverseN)assertTemplateUsed)Authenticatorc                 
    ||      5 }| j                  t        d      d      }d|j                         v sJ | j                  t        d      d|i      }d d d        d   t        j
                  k(  sJ y # 1 sw Y   "xY w)Nmfa_login_webauthnXMLHttpRequestHTTP_X_REQUESTED_WITHrequest_options
credentialdatalocation)getr   jsonpostr   LOGIN_REDIRECT_URL)clientpasskeywebauthn_authentication_bypassr   resps        `/var/www/cs2snipe.com/venv/lib/python3.12/site-packages/allauth/mfa/webauthn/tests/test_views.pytest_passkey_loginr      s    	'	0 
Jzz()AQ  
 !DIIK///{{()z0J  

 
x:::::
 
s   AA99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_codesi.  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_reauthenticater&      s     ??7#<=>Ds"""
&&w/G'HIII??7#789D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_ajaxr)   ,   s.    ::g234D
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_challenger5   1   s    ::$%=M  D s"""#555599;D $$&$/	
	 	 	 	r*   c                 f    | j                  t        d      ddi      }|d   t        d      k(  sJ y )Nr	   r   z{}r   r   r(   )r   r   )r   r   r   s      r   test_invalid_passkey_loginr7   D   s7    ;;w34L$;O;PD
w7777r*   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   r:   r#   r   r   refresh_from_dbr   strr$   r   reauthentication_bypassr   s       r   test_rename_keyrD   I   s   ??7#6gjj?QRSD
&&w/G'HIII	 	" 
)w':D'**CUVW4!>?'wzz0B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_webauthnr:   r;   r   r   z.mfa/webauthn/authenticator_confirm_delete.htmlr?   )r   r   r:   r#   r   r   rB   s       r   test_remove_keyrG   Y   s    ??7#8$

ASTUD
&&w/G'HIII	 	" @)42DE
 	4!QR)42DE
 J7+>#????@ @ @s   A0C		CpasswordlessFTc                 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   rH   r   )usertype)r   r   r#   r   r   r   objectsTypeWEBAUTHNwrapis_passwordlessfilterRECOVERY_CODESexists)r$   rM   webauthn_registration_bypassrC   rH   r   r   authenticators           r   test_add_keyrY   g   s    
&dL	9 NZ&'|Z.H   
 J**73K+LMMM	N
 
!	" w'9:;4!=>)$= 	S##*+",,8Db $ D 
#..w7P/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 )Nr?   z$mfa/webauthn/authenticator_list.html)r   r   r   )r$   r   s     r   test_list_keysr[      s!    ??7#678DtCDr*   email_verifiedmethodr   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   rJ   r   r   r   	mfa_index)r   r   r   )r$   rM   rW   rC   r]   r   r   s          r   test_add_with_unverified_emailr`      s    
 
&dE	2 8jU???7+=#>?D##*+<2L $ D J7;#77778 8 8s   AA&&A/)unittest.mockr   django.confr   django.urlsr   pytestpytest_django.assertsr   allauth.mfa.modelsr   r   r&   r)   r5   r7   rD   rG   markparametrizerY   r[   r`    r*   r   <module>rj      s         4 ,	;((8
&8
) @ %7 8BE
 )E73E6?3
8 4 4
8r*   