
    f-                     `    d dl mZmZ d dlmZ d dlmZmZ d dlm	Z	 d Z
d Zd Zd Zd	 Zd
 Zy)    )ANYpatch)User)EmailAddressEmailConfirmationHMAC)Flowc                     |j                   |d      d |        |       dd      }|j                  dk(  sJ t        j                  j	                  d      j                         sJ y )Nheadless:account:signupwizardusernameemailpasswordapplication/jsondatacontent_type   r   )poststatus_coder   objectsfilterexists)dbclientemail_factorypassword_factorysettingsheadless_reverseheadless_clientresps           e/var/www/cs2snipe.com/venv/lib/python3.12/site-packages/allauth/headless/account/tests/test_signup.pytest_signupr$   	   sr     ;;23 "_(*

 (  D s"""<<188:::    c                 $   d|_         d|_         |       }|j                   |d      | |       dd      }|j                  dk(  sJ t        j
                  j                  |      j                         sJ |j                         }	t        d	 |	d
   d   D              }
|
d   dk(  sJ t        j
                  j                  |      }t        |      j                  }|j                   |d      |      }|j                  dk(  sJ |j                         |t        dddiddk(  sJ |j                   |d      d|id      }|j                  dk(  sJ |j                         }	|	d   d   sJ |j                          |j                   sJ y )N	mandatoryFr
   r   r   r   r     )r   c              3   D   K   | ]  }|j                  d       s|  yw)
is_pendingN)get).0fs     r#   	<genexpr>z6test_signup_with_email_verification.<locals>.<genexpr>6   s     IqQUU<5HIs     r   flowsidverify_emailzheadless:account:verify_email)HTTP_X_EMAIL_VERIFICATION_KEYr   )r   useris_authenticatingT)r   metastatuskeyr6   is_authenticated)ACCOUNT_EMAIL_VERIFICATIONACCOUNT_USERNAME_REQUIREDr   r   r   r   r   r   jsonnextr   r,   r   r8   r   refresh_from_dbverified)r   r   r   r   r   r    r!   r   r"   r   flowaddrr8   s                r#   #test_signup_with_email_verificationrB      s    +6H').H&OE;;23(*
 (  D s"""<<U+2244499;DIDL1IJD:'''##%#0D

%
)
)C::89&)  D s"""99;
 %d+    ;;89S\'  D
 s"""99;D<*+++===r%   c	                 D   d|_         d|_        d|_        |j                   |d      |j                   |       dd      }	t        |      dk(  sJ d	|d
   j                  v sJ |	j                  dk(  sJ |	j                         }
|
d   d   D cg c]  }|d   t        j                  k(  s| c}d
   d   sJ |j                   |d            }	|	j                         }
|
d   d   D cg c]  }|d   t        j                  k(  s| c}d
   d   sJ y c c}w c c}w )Nr'   FTr
   r(   r   r      z2an account using that email address already existsr   r)   r   r0   r1   r+   z headless:account:current_session)r:   r;   ACCOUNT_PREVENT_ENUMERATIONr   r   lenbodyr   r<   r   VERIFY_EMAILr,   )r   r   r   r   r   r    r!   r4   
mailoutboxr"   r   r.   s               r#   test_signup_prevent_enumerationrJ   S   sF    +6H').H&+/H(;;23ZZ(*
 (  D z?a?:a=CUCUUUUs"""99;DF|G,M!$4;L;L0LAMaP   ::&'IJKD99;DF|G,M!$4;L;L0LAMaP   N
 Ns   D,D,DDc                     ddi|_         t        d      D ]\  }|j                   |d      d|  |        |       dd      }	|rd	nd
}
|	j                  |
k(  sJ |	j	                         d   |
k(  r\J  y )Nsignupz1/m/ip   r
   r   r   r   r   i  r   r7   )ACCOUNT_RATE_LIMITSranger   r   r<   )r   r   r   r   r   r    enable_cacher!   attemptr"   expected_statuss              r#   test_signup_rate_limitrS   w   s     %-h#7H 8 8{{67$WI.&,.
 ,  
 ")#c?222yy{8$7778r%   c                 $   t        d      5 }d|_        |j                   |d      d |        |       dd      }d d d        j                  dk(  sJ t        j
                  j                  d	      j                         rJ y # 1 sw Y   KxY w)
Nz@allauth.account.adapter.DefaultAccountAdapter.is_open_for_signupFr
   r   r   r   r   i  r   )r   return_valuer   r   r   r   r   r   )	r   r   r   r   r   r    r!   iofsr"   s	            r#   test_signup_closedrW      s     
J
 
	!{{67$&,.
 ,  
	
 s"""||""H"5<<>>>>
 
s   0BBc                     |j                   |d      d |        |       dd      }|j                  dk(  sJ |j                         ddik(  sJ y )Nr
   r   r   r   r   i  r7   )r   r   r<   )r   auth_clientr   r   r   r    r!   r"   s           r#   test_signup_while_logged_inrZ      sh     23 "_(*

 (  D s"""99;8S/)))r%   N)unittest.mockr   r   django.contrib.auth.modelsr   allauth.account.modelsr   r   allauth.headless.constantsr   r$   rB   rJ   rS   rW   rZ    r%   r#   <module>r`      s1    $ + F +;,1h!H84?4*r%   