
    )Jf                         d dl mZ d dlmZ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mZ d d	lmZ d
dlmZ d
dlmZ  G d de          ZdS )    )md5)Mockpatch)User)RequestFactory)reverse)	urlencode)app_settings)SocialAccount	SocialAppSocialToken)TestCase   )views)DraugiemProviderc                   >    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	S )
DraugiemTestsc                    t           j                            ddd           | j                            dd           t
          j                            t          j        t          j        dt          j        d          }t                      
                    d          }|                    |          | _        t          j        r7d	d
lm} |j                            |j                                                   || _        d S )Nanakinzskywalker@deathstar.example.com	s1thrul3s)usernamepasswordapp123iddummy)providername	client_idkeysecret/r   )Site)r   objectscreate_userclientloginr   creater   idr   getget_providerr   r
   SITES_ENABLEDdjango.contrib.sites.modelsr!   sitesaddget_currentapp)selfr/   requestr!   s       q/home/alex/cs2snipeproduction/venv/lib/python3.11/site-packages/allauth/socialaccount/providers/draugiem/tests.pysetUpzDraugiemTests.setUp   s     	  7	
 	
 	
 	8kBBB&&%(!$  # ' 
 
 !""&&s++((11% 	6888888IMM$,2244555    c                     dddi 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ddd d!d"diid#S )$z-
        Sample Draugiem.lv response
        1234542age266imgl8http://cdn.memegenerator.net/instances/500x/23395689.jpgsurname	Skywalkerurlz	/user/42/imginickzSky Guycreatedz09.11.1812 11:26:15deletedfalseimgmsexMtypeUser_DefaultuidplaceLondon	emailHash)3f198f21434gfd2f2b4rs05939shk93f3815bc6aar   Anakinadult1birthdayz
1750-09-13img)apikeyrI   users )r0   s    r2   get_draugiem_login_responsez)DraugiemTests.get_draugiem_login_response)   s   
  5V { ;	
 V I 4 w V 3 N 4 X  !L H  S!" #$ U% 
 
 	
r4   c                 f    t                      }| j                            ||          }||_        |S )zH
        Returns SocialLogin based on the data from the request
        )r   r   sociallogin_from_responsetoken)r0   responserY   r1   r%   s        r2   get_socialaccountzDraugiemTests.get_socialaccountH   s0     &&77JJr4   c                 \    | 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%    )processscopeauth_paramsr6   socialaccount_stateN)r$   sessionsave)r0   rb   s     r2   mock_socialaccount_statez&DraugiemTests.mock_socialaccount_stateQ   s>    
 +%"R@@*
%& 	r4   c                    | j                             t          t          j                            }t          t          j                  }d|z   }| j        j        |z   }t          |	                    d                    
                                }| j        j        ||d}|                     |t          j        dt          |          d           d S )Nzhttp://testserverzutf-8)r/   hashredirect?Ffetch_redirect_response)r$   r(   r   r   r%   callbackr/   r   r   encode	hexdigestr   assertRedirectsAUTHORIZE_URLr	   )r0   rZ   redirect_urlfull_redirect_urlr   redirect_url_hashparamss          r2   test_login_redirectz!DraugiemTests.test_login_redirect]   s    ;??75;#7#788u~../,>#44g 6 677AACC8%%)
 

 	***If,=,=,=>$) 	 	
 	
 	
 	
 	
r4   c                     | j                             t          t          j                            }|                     |d           d S )N'socialaccount/authentication_error.htmlr$   r(   r   r   rk   assertTemplateUsedr0   rZ   s     r2   test_callback_no_auth_statusz*DraugiemTests.test_callback_no_auth_statusn   s<    ;??75>#:#:;;*STTTTTr4   c                     | j                             t          t          j                  ddi          }|                     |d           d S )Ndr_auth_statusfailrv   rw   ry   s     r2   !test_callback_invalid_auth_statusz/DraugiemTests.test_callback_invalid_auth_statusr   sD    ;??75>#:#:=Mv<VWW*STTTTTr4   c                    t          d          5 }|                                  |                                 }t          | j        |d                   }|                     ||          }||_        | j                            t          t          j                  ddd          }|                     |dd	           t          j                            t           j        
                                          }|                                }|                                dk    sJ |                                dk    sJ 	 d d d            d S # 1 swxY w Y   d S )NzFallauth.socialaccount.providers.draugiem.views.draugiem_complete_loginrS   )r/   rY   okr7   )r|   dr_auth_codez/accounts/profile/Fri   )r   r;   Draugiem)r   rd   rV   r   r/   r[   return_valuer$   r(   r   r   rk   rn   r   r"   filterr   r'   lastget_provider_accountget_avatar_urlto_str)r0   draugiem_complete_loginresponse_jsonrY   r%   rZ   socialaccountpaccs           r2   test_callbackzDraugiemTests.test_callbackv   s   T
 
 	/$))+++ <<>>MDHM(4KLLLE**=%@@E38#0{''#'>> H   . !    *188), 9  dff  !5577D##%%MN N N N ;;==J.....7	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/s   D3EEEN)__name__
__module____qualname__r3   rV   r[   rd   rt   rz   r~   r   rU   r4   r2   r   r      s          .
 
 
>  
 
 

 
 
"U U UU U U/ / / / /r4   r   N)hashlibr   unittest.mockr   r   django.contrib.auth.modelsr   django.testr   django.urlsr   django.utils.httpr	   allauthr
   allauth.socialaccount.modelsr   r   r   allauth.testsr   r]   r   r   r   r   rU   r4   r2   <module>r      s         % % % % % % % % + + + + + + & & & & & &       ' ' ' ' ' '             N N N N N N N N N N " " " " " "       & & & & & &A/ A/ A/ A/ A/H A/ A/ A/ A/ A/r4   