o
    "4g'                     @   s   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 dlmZ ejdd	d
gdd Zdd Zdd Zejdg ddd ZdS )    )patch)reverseN)assertTemplateUsed)flows)SocialAccount)AuthProcessreauthentication_requiredFTc                 C   s   d|_ ||_tjjdd|d}tjjdd|d}| td}t|d | tdd|j	i}|rKtjj
|j	d	 s=J tjj
|j	d	 sIJ d S tjj
|j	d	 rWJ tjj
|j	d	 scJ t|d
kskJ |d jdkstJ d S )NT123zother-server)uidprovideruser456socialaccount_connectionszsocialaccount/connections.htmlaccount)pk   r   z.[example.com] Third-Party Account Disconnected)ACCOUNT_EMAIL_NOTIFICATIONS!ACCOUNT_REAUTHENTICATION_REQUIREDr   objectscreategetr   r   postr   filterexistslensubject)auth_clientr   settings
mailoutboxr   account_to_delaccount_to_keepresp r"   q/var/www/html/authentication-server/venv/lib/python3.10/site-packages/allauth/socialaccount/tests/test_connect.pytest_disconnect   s(   
r$   c                 C   s   d|_ || dd}tjj|d rJ |jdksJ |d tdks%J | |d d|i}|jdks6J |d td	ks@J tjj|d sKJ d S )
NTconnectprocessr   .  locationaccount_reauthenticatepasswordr   )r   r   r   r   r   status_coder   r   )r   r   provider_callback_responser   user_passwordr!   r"   r"   r#   "test_connect_with_reauthentication&   s   r0   c                 C   sv   d|_ d|_|| dd}|jdksJ tjj|d sJ |d tdks(J t|d	ks0J |d
 j	dks9J d S )NTFr%   r&   r)   r(   r*   r   r   r   z+[example.com] Third-Party Account Connected)
r   r   r-   r   r   r   r   r   r   r   )r   r   r.   r   r/   r   r!   r"   r"   r#   test_connect4   s   r1   z4email_authentication,account_exists, expected_action))FFadded)FTupdated)TFr2   )TTr3   c                 C   s   ||_ ||jdd}|r|j}||_|  tj|jd< | d}	||	_t	d}
t
j|	| |
jd d d |ks=J W d    n1 sGw   Y  tjj||jjd	 sZJ d S )
Nzunittest-server)emailr   r'   /z9allauth.account.adapter.DefaultAccountAdapter.add_messager   message_contextaction)r   r
   )"SOCIALACCOUNT_EMAIL_AUTHENTICATIONr4   r   r   saver   CONNECTstater   r   r   logincomplete_login	call_argsr   r   r   r
   r   )request_factorysociallogin_factoryr   r   email_authenticationaccount_existsexpected_actionsocialloginr   requestadd_messager"   r"   r#   $test_connect_vs_email_authenticationA   s"   
 rG   )unittest.mockr   django.urlsr   pytestpytest_django.assertsr   allauth.socialaccount.internalr   allauth.socialaccount.modelsr   .allauth.socialaccount.providers.base.constantsr   markparametrizer$   r0   r1   rG   r"   r"   r"   r#   <module>   s     
	