
    fz                         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ej                  j                  d
ddg      d        Zd Zy)    )ANYN)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          c/var/www/cs2snipe.com/venv/lib/python3.12/site-packages/allauth/headless/mfa/tests/test_webauthn.pytest_passkey_loginr   	   s     
(	0 
Jzz*+HIJ DIIK$7777{{:;
++  

 99;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FD99;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_reauthenticater.   '   se    ??+,PQRDs"""""#yy{627;'T
'   
 
(	0 6/0VWXyy{H~$$$F|-.#555	6 
(	0 'JCD
++   

 3&&&' ??+,PQRD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wrapr0   r+   r   r   reauthentication_bypassr	   r   s         r   test_update_authenticatorr8   H   s     **j1D??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authenticatorsr1   r   r   r'   r   )r2   )r2   deleter)   r   objectsfilterexistsr6   s         r   test_delete_authenticatorr?   ^   s     wzzl+D78'  D s"""	 	" 
!!;<+ " 

 s"""$$++wzz+: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)Nr1   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_bypassr7   r@   r   r	   r
   webauthn_counts
             r   test_add_authenticatorrJ   s   s    ??+,JKLD&44s"==#	 	" +/0NOP##s***99;D< 23s:::##s***)$6 	+*## !?@"J// $ D
 +2299"''00t : eg  ''3...%***''3...%***	++ +	+ 	++ +s%   A&EBE /E E		EEc                 r   | 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 y c c}w # 1 sw Y   JxY w)Nzheadless:account:login)usernamepasswordr   r   r'   r	   r(   
is_pendingrD   r   mfa_authenticateTwebauthn)r   rN   typesz"headless:mfa:authenticate_webauthnr   r
   r   r   r   )r   rL   r)   r   r   lenr   )r   r   user_passwordr   r   r   r   r	   fpending_flowspending_flowr
   s               r   test_2fa_loginrW      sx    ;;12%
 (  D s"""99;D $VW 5M1|9LQMMM}""" #L    
 
(	0 
Jzz*+OPQ DIIK$7777{{AB
++  

 99;Ds"""<%888% N
 
s   D(*D(AD--D6)unittest.mockr   pytestallauth.headless.constantsr   allauth.mfa.modelsr   r   r$   r.   r8   r?   markparametrizerJ   rW    r%   r   <module>r_      s\      + ,9#B-,D* )E4=9#+ :#+L$9r%   