U
    [e\                     @   s   d dl Z d dl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
 d dlmZ d dlmZ G dd	 d	eZG d
d deZG dd deZG dd deZejddZG dd deZdS )    N)	HTTPretty)do_disconnect)
BaseOAuth2)AuthForbidden)User)
OAuth2Testc                   @   s<   e Zd ZdZdZdZdZdZdddd	gZd
d Z	dd Z
dS )DummyOAuth2dummyz http://dummy.com/oauth/authorizez#http://dummy.com/oauth/access_tokenzhttps://dummy.com/oauth/revokeGET)idr   )expiresr   )emptyr   Turlc                 C   s,   | d| dd| dd| dddS )z'Return user details from Github accountusernameemail 
first_name	last_name)r   r   r   r   )get)selfresponse r   b/var/www/html/services/stratfitenv/lib/python3.8/site-packages/social/tests/backends/test_dummy.pyget_user_details   s
    


zDummyOAuth2.get_user_detailsc                 O   s   | j dd|idS )zLoads user data from servicehttp://dummy.com/useraccess_token)params)Zget_json)r   r   argskwargsr   r   r   	user_data#   s     zDummyOAuth2.user_dataN)__name__
__module____qualname__nameZAUTHORIZATION_URLZACCESS_TOKEN_URLREVOKE_TOKEN_URLREVOKE_TOKEN_METHODZ
EXTRA_DATAr   r   r   r   r   r   r      s   r   c                	   @   s`   e Zd ZdZdZdZedddZeddddd	d
dZ	dd Z
dd Zdd Zdd ZdS )DummyOAuth2Testz,social.tests.backends.test_dummy.DummyOAuth2r   foobarZbearer)r   
token_type   http://dummy.com/user/foobarFooBarfoo@bar.com)r   r   r   r   r   r   c                 C   s   |    d S N)do_loginr   r   r   r   
test_login;   s    zDummyOAuth2Test.test_loginc                 C   s   |    d S r.   )Zdo_partial_pipeliner0   r   r   r   test_partial_pipeline>   s    z%DummyOAuth2Test.test_partial_pipelinec                 C   s    |   }| |jd jd d S )Nr   r'   )r/   assertEqualsocialr   r   userr   r   r   test_tokensA   s    zDummyOAuth2Test.test_tokensc                 C   sX   | j ddi |   t| j}d|_tj| 	| j
j| j
jdd t| j
| d S )NZ'SOCIAL_AUTH_REVOKE_TOKENS_ON_DISCONNECTTpassword   )status)strategyset_settingsr/   r   r   expected_usernamer8   r   Zregister_uri_methodbackendr%   r$   r   r5   r   r   r   test_revoke_tokenE   s     z!DummyOAuth2Test.test_revoke_tokenN)r    r!   r"   backend_pathZuser_data_urlr=   jsondumpsZaccess_token_bodyuser_data_bodyr1   r2   r7   r@   r   r   r   r   r&   *   s&   	r&   c                   @   s   e Zd Zdd Zdd ZdS )WhitelistEmailsTestc                 C   s   | j ddgi |   d S )NSOCIAL_AUTH_WHITELISTED_EMAILSr-   r;   r<   r/   r0   r   r   r   test_valid_loginS   s
     z$WhitelistEmailsTest.test_valid_loginc              	   C   s4   | j ddgi | t |   W 5 Q R X d S )NrF   zfoo2@bar.comr;   r<   assertRaisesr   r/   r0   r   r   r   test_invalid_loginY   s     z&WhitelistEmailsTest.test_invalid_loginNr    r!   r"   rH   rK   r   r   r   r   rE   R   s   rE   c                   @   s   e Zd Zdd Zdd ZdS )WhitelistDomainsTestc                 C   s   | j ddgi |   d S )NZSOCIAL_AUTH_WHITELISTED_DOMAINSzbar.comrG   r0   r   r   r   rH   b   s
     z%WhitelistDomainsTest.test_valid_loginc              	   C   s4   | j ddgi | t |   W 5 Q R X d S )NrF   zbar2.comrI   r0   r   r   r   rK   h   s     z'WhitelistDomainsTest.test_invalid_loginNrL   r   r   r   r   rM   a   s   rM   r)   )daysc                   @   sB   e Zd Zeddddddeej e	 
 dZdd	 Zd
S )ExpirationTimeTestr)   r'   r*   r+   r,   r-   )r   r   r   r   r   r   r   c                 C   s.   |   }|jd }| }| |tkd d S )Nr   T)r/   r4   Zexpiration_datetimer3   DELTA)r   r6   r4   Z
expirationr   r   r   test_expires_time   s    
z$ExpirationTimeTest.test_expires_timeN)r    r!   r"   rB   rC   timemktimedatetimeutcnowrP   	timetuplerD   rQ   r   r   r   r   rO   s   s   rO   )rB   rT   rR   Z	httprettyr   Zsocial.actionsr   Zsocial.backends.oauthr   Zsocial.exceptionsr   Zsocial.tests.modelsr   Zsocial.tests.backends.oauthr   r   r&   rE   rM   	timedeltarP   rO   r   r   r   r   <module>   s   (