U
    [ei                     @   s4  d dl Z d dl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G dd	 d	e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G dd de
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G dd de
ZG dd de
ZG d d! d!e
ZG d"d# d#e
ZdS )$    N)AuthException)TestUserSocialAuthTestStorageUser)TestStrategy)BaseActionTestc                   @   s   e Zd ZdS )IntegrityErrorN__name__
__module____qualname__ r   r   \/var/www/html/services/stratfitenv/lib/python3.8/site-packages/social/tests/test_pipeline.pyr   
   s   r   c                   @   s   e Zd ZdS )UnknownErrorNr	   r   r   r   r   r      s   r   c                       s,   e Zd Zedd Ze fddZ  ZS )IntegrityErrorUserSocialAuthc                 C   s
   t  d S N)r   clsuseruidproviderr   r   r   create_social_auth   s    z/IntegrityErrorUserSocialAuth.create_social_authc                    s\   t | dsd| _|  jd7  _| jdkrFttj d }t|||S tt| ||S d S )N_called_timesr         )	hasattrr   listr   cachevaluesr   superget_social_auth)r   r   r   r   	__class__r   r   r       s    


 z,IntegrityErrorUserSocialAuth.get_social_auth)r
   r   r   classmethodr   r    __classcell__r   r   r!   r   r      s   
r   c                   @   s   e Zd ZeZedd ZdS )IntegrityErrorStoragec                 C   s
   t |tS )z;Check if given exception flags an integrity error in the DB)
isinstancer   )r   	exceptionr   r   r   is_integrity_error(   s    z(IntegrityErrorStorage.is_integrity_errorN)r
   r   r   r   r   r#   r(   r   r   r   r   r%   %   s   r%   c                   @   s   e Zd Zedd ZdS )UnknownErrorUserSocialAuthc                 C   s
   t  d S r   )r   r   r   r   r   r   /   s    z-UnknownErrorUserSocialAuth.create_social_authN)r
   r   r   r#   r   r   r   r   r   r)   .   s   r)   c                   @   s   e Zd ZeZdS )UnknownErrorStorageN)r
   r   r   r)   r   r   r   r   r   r*   4   s   r*   c                       s$   e Zd Z fddZdd Z  ZS )IntegrityErrorOnLoginTestc                    s   t t| _tt|   d S r   )r   r%   strategyr   r+   setUpselfr!   r   r   r-   9   s    
zIntegrityErrorOnLoginTest.setUpc                 C   s   |    d S r   do_loginr.   r   r   r   test_integrity_error=   s    z.IntegrityErrorOnLoginTest.test_integrity_error)r
   r   r   r-   r2   r$   r   r   r!   r   r+   8   s   r+   c                       s$   e Zd Z fddZdd Z  ZS )UnknownErrorOnLoginTestc                    s   t t| _tt|   d S r   )r   r*   r,   r   r3   r-   r.   r!   r   r   r-   B   s    
zUnknownErrorOnLoginTest.setUpc              	   C   s"   |  t |   W 5 Q R X d S r   )assertRaisesr   r1   r.   r   r   r   test_unknown_errorF   s    z*UnknownErrorOnLoginTest.test_unknown_error)r
   r   r   r-   r5   r$   r   r   r!   r   r3   A   s   r3   c                   @   s   e Zd ZdZdd ZdS )EmailAsUsernameTestfoo@bar.comc                 C   s   | j ddi |   d S )NZ"SOCIAL_AUTH_USERNAME_IS_FULL_EMAILTr,   set_settingsr1   r.   r   r   r   test_email_as_usernameN   s
     z*EmailAsUsernameTest.test_email_as_usernameN)r
   r   r   expected_usernamer:   r   r   r   r   r6   K   s   r6   c                   @   sZ   e Zd Zeddddddddd	d
dddddddddddddddddddZdd ZdS )RandomUsernameTestr   0https://github.com/images/error/foobar_happy.gifsomehexcode#https://api.github.com/users/foobarmonalisa foobarGitHubhttps://github.com/blogSan Franciscor7   FThere once was...r      r   https://github.com/foobar2008-01-14T04:33:35Zr   d   Q   '     Medium  
   namespacecollaboratorsZprivate_repos)id
avatar_urlgravatar_idurlrP   companybloglocationemailhireablebiopublic_repospublic_gists	followers	followinghtml_url
created_attypetotal_private_reposowned_private_reposprivate_gists
disk_usagerR   planc                 C   s   | j dd d S )NFZafter_complete_checksr0   r.   r   r   r   test_random_usernamev   s    z'RandomUsernameTest.test_random_usernameN)r
   r   r   jsondumpsuser_data_bodyrj   r   r   r   r   r<   U   s>    r<   c                   @   s`   e Zd ZdZedddddddd	d
dddddddddddddddddddddZdd ZdS ) SluggedUsernameTestzfoo-barzFoo Barr   r=   r>   r?   r@   rA   rB   rC   r7   FrD   r   rE   r   rF   rG   r   rH   rI   rJ   rK   rL   rM   rN   rO   )loginrS   rT   rU   rV   rP   rW   rX   rY   rZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   rd   re   rf   rg   rR   rh   c                 C   s   | j ddd |   d S )NFT)ZSOCIAL_AUTH_CLEAN_USERNAMESZSOCIAL_AUTH_SLUGIFY_USERNAMESr8   r.   r   r   r   rj      s
    z(SluggedUsernameTest.test_random_usernameN)r
   r   r   r;   rk   rl   rm   rj   r   r   r   r   rn   z   sB   !rn   c                   @   s   e Zd Zdd ZdS )RepeatedUsernameTestc                 C   s2   t dd | jdd | | jdd d S )NfoobarusernameFri   rs   )r   r1   
assertTruer,   session_get
startswithr.   r   r   r   rj      s
    
z)RepeatedUsernameTest.test_random_usernameN)r
   r   r   rj   r   r   r   r   rp      s   rp   c                   @   s   e Zd Zdd ZdS )AssociateByEmailTestc                 C   s8   t dd}d|_| jdd | | jdd d S )Nfoobar1rr   r7   Fri   rs   rq   )r   rZ   r1   rt   r,   ru   rv   )r/   r   r   r   r   &test_multiple_accounts_with_same_email   s    
z;AssociateByEmailTest.test_multiple_accounts_with_same_emailNr
   r   r   ry   r   r   r   r   rw      s   rw   c                   @   s   e Zd Zdd ZdS )!MultipleAccountsWithSameEmailTestc              	   C   sF   t dd}t dd}d|_d|_| t | jdd W 5 Q R X d S )Nrx   rr   Zfoobar2r7   Fri   )r   rZ   r4   r   r1   )r/   Zuser1Zuser2r   r   r   ry      s    

zHMultipleAccountsWithSameEmailTest.test_multiple_accounts_with_same_emailNrz   r   r   r   r   r{      s   r{   c                   @   s   e Zd Zdd Zdd ZdS )UserPersistsInPartialPipelinec                 C   st   t dd}d|_| jddi | jdd | jdd	 | jd
}| j|\}}}}| jj	|d|i| d S )Nrx   rr   r7   SOCIAL_AUTH_PIPELINE)*social.pipeline.social_auth.social_details&social.pipeline.social_auth.social_uid.social.pipeline.social_auth.associate_by_emailz*social.tests.pipeline.set_user_from_kwargsFri   	attributetestingpartial_pipelinepipeline_index
r   rZ   r,   r9   r1   Zsession_setZsession_popZpartial_from_sessionbackendZcontinue_pipeliner/   r   dataidxr   ZxargsZxkwargsr   r   r   -test_user_persists_in_partial_pipeline_kwargs   s    
 	zKUserPersistsInPartialPipeline.test_user_persists_in_partial_pipeline_kwargsc                 C   st   t dd}d|_| jddi | jdd | jdd	 | jd
}| j|\}}}}| jj	|d|i| d S )Nrx   rr   r7   r}   )r~   r   r   z(social.tests.pipeline.set_user_from_argsFri   r   r   r   r   r   r   r   r   r   &test_user_persists_in_partial_pipeline   s    
 	zDUserPersistsInPartialPipeline.test_user_persists_in_partial_pipelineN)r
   r   r   r   r   r   r   r   r   r|      s   r|   )rk   Zsocial.exceptionsr   Zsocial.tests.modelsr   r   r   Zsocial.tests.strategyr   Zsocial.tests.actions.actionsr   	Exceptionr   r   r   r%   r)   r*   r+   r3   r6   r<   rn   rp   rw   r{   r|   r   r   r   r   <module>   s&   		

%+	
