a
    Qx_                     @   s   d dl mZ d dlmZ d dlmZ d dlmZ d dlm	Z	 d dl
mZ d dlmZmZ d dlmZmZmZ d	d
lmZ d	dlmZ G dd deZdS )    )md5)User)Site)reverse)	urlencode)	providers)	SocialAppSocialToken)MockTestCasepatch   )views)DraugiemProviderc                   @   sL   e Z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 )DraugiemTestsc                 C   sn   t jddd | jjddd tjtj	| _
tjj| j
j	| j
j	d| j
j	dd}|jtj  || _d S )NZanakinzskywalker@deathstar.example.comZ	s1thrul3s)usernamepasswordZapp123iddummy)providername	client_idkeysecret)r   objectsZcreate_userclientloginr   registryZby_idr   idr   r   createZsitesaddr   Zget_currentapp)selfr     r"   f/var/www/html/Ranjet/env/lib/python3.9/site-packages/allauth/socialaccount/providers/draugiem/tests.pysetUp   s    zDraugiemTests.setUpc                 C   s6   ddddddddddd	dd
dddddddddidS )z-
        Sample Draugiem.lv response
        1234542Z266z8http://cdn.memegenerator.net/instances/500x/23395689.jpgZ	Skywalkerz	/user/42/zSky Guyz09.11.1812 11:26:15falseMZUser_DefaultZLondonZ)3f198f21434gfd2f2b4rs05939shk93f3815bc6aaZAnakin1z
1750-09-13)ZageZimglZsurnameurlZimgiZnickcreatedZdeletedZimgmZsextypeuidZplaceZ	emailHashr   ZadultZbirthdayZimg)apikeyr-   Zusersr"   )r!   r"   r"   r#   get_draugiem_login_response$   s0    z)DraugiemTests.get_draugiem_login_responsec                 C   s   t  }| j||}||_|S )zH
        Returns SocialLogin based on the data from the request
        )r
   r   Zsociallogin_from_responsetoken)r!   responser0   requestr   r"   r"   r#   get_socialaccountC   s    zDraugiemTests.get_socialaccountc                 C   s(   | j j}dddddf|d< |  dS )zn
        SocialLogin depends on Session state - a tuple of request
        params and a random string
        r    )processZscopeZauth_paramsr%   Zsocialaccount_stateN)r   sessionsave)r!   r6   r"   r"   r#   mock_socialaccount_stateL   s
    
z&DraugiemTests.mock_socialaccount_statec                 C   st   | j ttj}ttj}d| }| jj| }t|	d
 }| jj||d}| j|dtjt|f dd d S )Nzhttp://testserverzutf-8)r    hashZredirectz%s?%sFZfetch_redirect_response)r   getr   r   r   callbackr    r   r   encode	hexdigestr   assertRedirectsZAUTHORIZE_URLr   )r!   r1   Zredirect_urlZfull_redirect_urlr   Zredirect_url_hashparamsr"   r"   r#   test_login_redirectX   s    
z!DraugiemTests.test_login_redirectc                 C   s"   | j ttj}| |d d S )N'socialaccount/authentication_error.htmlr   r;   r   r   r<   ZassertTemplateUsedr!   r1   r"   r"   r#   test_callback_no_auth_statusi   s    z*DraugiemTests.test_callback_no_auth_statusc                 C   s(   | j ttjddi}| |d d S )Ndr_auth_statusZfailrB   rC   rD   r"   r"   r#   !test_callback_invalid_auth_statusm   s    z/DraugiemTests.test_callback_invalid_auth_statusc                 C   s   t dn}|   |  }t| j|d d}| ||}||_| jt	t
jddd}| j|ddd	 W d    n1 s|0    Y  d S )
NzFallauth.socialaccount.providers.draugiem.views.draugiem_complete_loginr.   )r    r0   okr&   )rF   Zdr_auth_codez/accounts/profile/Fr:   )r   r8   r/   r	   r    r3   Zreturn_valuer   r;   r   r   r<   r?   )r!   Zdraugiem_complete_loginZresponse_jsonr0   r   r1   r"   r"   r#   test_callbackq   s     zDraugiemTests.test_callbackN)__name__
__module____qualname__r$   r/   r3   r8   rA   rE   rG   rI   r"   r"   r"   r#   r      s   	r   N)Zhashlibr   Zdjango.contrib.auth.modelsr   Zdjango.contrib.sites.modelsr   Zdjango.urlsr   Zdjango.utils.httpr   Zallauth.socialaccountr   Zallauth.socialaccount.modelsr   r	   Zallauth.testsr
   r   r   r4   r   r   r   r   r"   r"   r"   r#   <module>   s   