o
    “h»  ã                   @   s®   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 ejd	d
„ ƒZdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ ZdS )é    )Ú
HTTPStatus)ÚANY)Úsettings)ÚreverseN)ÚassertTemplateUsed)Úget_adapter)Ú"AUTHENTICATION_METHODS_SESSION_KEYc                 c   s<    | ddgd d V  W d   ƒ d S 1 sw   Y  d S )N©Úphoneúphone*)ÚACCOUNT_LOGIN_METHODSÚACCOUNT_SIGNUP_FIELDS© )Úsettings_impacting_urlsr   r   ú[/var/www/html/env_mimamsha/lib/python3.10/site-packages/allauth/account/tests/test_phone.pyÚphone_only_settings   s   €ÿ"ýr   c           
      C   sÜ   t |ƒdksJ ‚|jtdƒd|id}|jtjksJ ‚t |ƒdks#J ‚|d tdƒks-J ‚| |d ¡}|jtjks<J ‚|jtdƒd|d	 d id}|jtjksSJ ‚tƒ }| 	|¡}| 
|¡\}}	|	sfJ ‚||kslJ ‚d S )
Nr   Úaccount_signupr
   ©Údataé   ÚlocationÚaccount_verify_phoneÚcodeéÿÿÿÿ)ÚlenÚpostr   Ústatus_coder   ÚFOUNDÚgetÚOKr   Úget_user_by_phoneÚ	get_phone)
ÚdbÚclientr
   Ú
sms_outboxr   ÚrespÚadapterÚuserÚphone2Úphone_verifiedr   r   r   Útest_signup   s    ÿ
r*   c                 C   sä   t |ƒdksJ ‚|jtdƒd|id}|jtjksJ ‚tƒ }| |¡}| |¡\}}	|	r.J ‚t |ƒdks6J ‚|d tdƒks@J ‚| 	|d ¡}|jtj
ksOJ ‚tdƒD ]}
|jtdƒd	d
id}|j|
dk ritj
ntjksoJ ‚qSd S )Nr   r   r
   r   r   r   r   é   r   Úwrongé   )r   r   r   r   r   r   r   r    r!   r   r   Úrange)r"   r#   r
   r$   r   r%   r&   r'   Ú_r)   Úir   r   r   Útest_signup_invalid_attempts)   s   
 þr1   c                 C   sN   |j tdƒd|id}|jtjksJ ‚|d tdƒksJ ‚t|ƒdks%J ‚d S )NÚaccount_loginÚloginr   r   Úaccount_confirm_login_coder   )r   r   r   r   r   r   )Úuser_with_phoner#   r   r
   r$   r%   r   r   r   Útest_login_sends_code:   s   r6   c                 C   sr   |ddgdgd& | j tdƒ||dœd}|jtjksJ ‚|d tjks'J ‚W d   ƒ d S 1 s2w   Y  d S )	Nr   ú
password1*r
   ©r   r   r2   ©r3   Úpasswordr   r   )r   r   r   r   r   r   ÚLOGIN_REDIRECT_URL)r#   r   r
   r5   Úuser_passwordr%   r   r   r   Ú+test_login_with_verified_phone_and_passwordC   s   þÿ"ør=   c                 C   sØ   |ddgdgdY |ƒ }|||dd}| j tdƒ||dœd	}|jtjks(J ‚|d
 tdƒks2J ‚|d d }	| j tdƒd|	id	}|d
 tjksLJ ‚tƒ  |¡}
|
|dfksZJ ‚W d   ƒ d S 1 sew   Y  d S )Nr   r7   r
   r8   F)r
   r:   r)   r2   r9   r   r   r   r   r   T)	r   r   r   r   r   r   r;   r   r!   )r#   r   r
   Úpassword_factoryÚuser_factoryr$   r:   r'   r%   r   r)   r   r   r   Ú-test_login_with_unverified_phone_and_passwordQ   s"   þÿ"ñr@   c           	      C   s$  |ƒ }|   tdƒ¡}|jtjksJ ‚t|dƒ |  tdƒd|i¡}|jtjks)J ‚|d tdƒks3J ‚|d d }|   tdƒ¡}|jtjksHJ ‚t|dƒ |  tdƒd|i¡}|jtjks_J ‚|d tdƒksiJ ‚tƒ  	|¡}||d	fkswJ ‚|   tdƒ¡}|jtjks†J ‚|d tdƒksJ ‚d S )
NÚaccount_change_phonezaccount/phone_change.htmlr
   r   r   r   r   z,account/confirm_phone_verification_code.htmlT)
r   r   r   r   r   r   r   r   r   r!   )	Úauth_clientr'   r   Úphone_factoryr$   Ú	new_phoner%   r   r)   r   r   r   Útest_change_phonef   s&   

rE   c                 C   s`   |j tdƒd|ƒ id}|jtjksJ ‚|d tdƒksJ ‚d|d vs&J ‚d|d vs.J ‚d S )	NÚaccount_request_login_coder
   r   r   r4   r   r   Úuser_id)r   r   r   r   r   )r"   r   r#   rC   r$   r%   r   r   r   Ú)test_login_by_code_enumeration_preventionƒ   s   ÿrH   c           	      C   sð   |ddddgde |ƒ }|  tdƒd|i¡}|d  td	ƒ¡s"J ‚| td	ƒ¡}t|d
ƒ |j td	ƒd|id}|jdks@J ‚|jt }|d dtddœksQJ ‚|  tdƒd|i¡}|d  tdƒ¡sfJ ‚W d   ƒ d S 1 sqw   Y  d S )NTr	   r   r7   )Ú!ACCOUNT_REAUTHENTICATION_REQUIREDr   r   rA   r
   r   Úaccount_reauthenticatezaccount/reauthenticate.htmlr:   r   i.  r   )ÚmethodÚatÚreauthenticatedr   )	r   r   Ú
startswithr   r   r   Úsessionr   r   )	r   rB   r5   rC   r   r<   rD   r%   Úmethodsr   r   r   Útest_reauthentication   s2   ýþ
ÿ
þ"ærQ   )Úhttpr   Úunittest.mockr   Údjango.confr   Údjango.urlsr   ÚpytestÚpytest_django.assertsr   Úallauth.account.adapterr   Úallauth.account.authenticationr   Úfixturer   r*   r1   r6   r=   r@   rE   rH   rQ   r   r   r   r   Ú<module>   s$    
	