
    )Jf1                         d dl mZ d dlZd dl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mZ d dlmZmZ d d	lmZ d d
lmZ ddlmZ  G d de          Z G d d          Z G d de          ZdS )    )unicode_literalsN)datedatetimeMock)ContentFile)models)RequestFactoryTestCase)base36_to_intint_to_base36)csrf)app_settings   )utilsc                   N    e Zd ZddZd Zd Zed             Zed             ZdS )MockedResponseNc                     |i }|| _         t          |t                    rt          j        |          }d|d<   |                    d          | _        || _        d S )Nzapplication/jsonzcontent-typeutf8)status_code
isinstancedictjsondumpsencodecontentheaders)selfr   r   r   s       P/home/alex/cs2snipeproduction/venv/lib/python3.11/site-packages/allauth/tests.py__init__zMockedResponse.__init__   s]    ?G&gt$$ 	9j))G&8GN#~~f--    c                 4    t          j        | j                  S N)r   loadstextr   s    r   r   zMockedResponse.json    s    z$)$$$r!   c                     d S r#    r&   s    r   raise_for_statuszMockedResponse.raise_for_status#   s    r!   c                     | j         dz  dk    S )Nd      )r   r&   s    r   okzMockedResponse.ok&   s    3&!++r!   c                 6    | j                             d          S )Nr   )r   decoder&   s    r   r%   zMockedResponse.text*   s    |""6***r!   r#   )	__name__
__module____qualname__r    r   r)   propertyr-   r%   r(   r!   r   r   r      s|        	 	 	 	% % %   , , X, + + X+ + +r!   r   c                   &    e Zd ZdddZd Zd ZdS )mocked_responseN)callbackc                <    || _         t          |          | _        d S r#   )r6   list	responses)r   r6   r9   s      r   r    zmocked_response.__init__0   s     ir!   c                     t           j        j         _        t           j        j         _        t           j        j         _         fd} |t           j        j                  t           j        _         |t           j        j                  t           j        _         |t           j        j                  t           j        _        d S )Nc                 2      fd}t          |          S )Nc                      j         r j         | i |}||S j        rAj                            d          }t          |t                    rt          d|          }|S  | i |S )Nr      )r6   r9   popr   r   r   )argskwargsresponserespfr   s       r   new_fzBmocked_response.__enter__.<locals>.mockable_request.<locals>.new_f:   s    = (,t}d=f==H+'>  >--a00D!$-- 9-c488Kq$)&)))r!   )side_effectr   )rC   rD   r   s   ` r   mockable_requestz3mocked_response.__enter__.<locals>.mockable_request9   s5    
* 
* 
* 
* 
* 
* E****r!   )requestsSessiongetorig_getpost	orig_postrequestorig_request)r   rF   s   ` r   	__enter__zmocked_response.__enter__4   s     (,!).$,4	+ 	+ 	+ 	+ 	+  0/0@0DEE 0 01A1F G G#3#3H4D4L#M#M   r!   c                     | j         t          j        _        | j        t          j        _        | j        t          j        _        d S r#   )rJ   rG   rH   rI   rL   rK   rN   rM   )r   typevalue	tracebacks       r   __exit__zmocked_response.__exit__L   s0    #} $#'#4   r!   )r0   r1   r2   r    rO   rT   r(   r!   r   r5   r5   /   sQ        ,0 ) ) ) ) )N N N05 5 5 5 5r!   r5   c                   >    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	S )

BasicTestsc                 ,    t                      | _        d S r#   )r
   factoryr&   s    r   setUpzBasicTests.setUpS   s    %''r!   c                 p    g d}|D ].\  }}|                      t          j        |g          |           /d S )N))za.b-c@example.comza.b-c)u   Üsêrnamêusername)z	User Name	user_name) user)assertEqualr   generate_unique_username)r   examplesinputr[   s       r   test_generate_unique_usernamez(BasicTests.test_generate_unique_usernameV   s\    
 
 
  ( 	P 	POE8U;UGDDhOOOO	P 	Pr!   c                 Z    d}|                      |t          j        |                     d S )NzJthis.email.address.is.a.bit.too.long.but.should.still.validate@example.com)r_   r   valid_email_or_none)r   ss     r   test_email_validationz BasicTests.test_email_validation`   s.    XE5a8899999r!   c                 r  	
  G d d          } |            
 G 
fddt           j                  	 G 	fddt           j                  }d } |t          j                    t          j                    
t          j                                                              }t          d	d
          |_	        t          dd          |_
        ||_        d|_        t          j        |          }t          j        ||          }|                     t#          |dd           |           |                     t#          |dd           d            |                     |j        
           |                     |j	        j        d
           |                     |j
        j        d           |                     |j        j        d           |                     |j        |j                   |                     |j        |j                   |                     |j                                        |j                                                   |j        |j        f|j                                        |j                                        ffD ]\  }}|                     |j        |j                   |                     |j        |j                   |                     |j        |j                   |                     t7          |j        dz            t7          |j        dz                       d S )Nc                       e Zd ZdS )-BasicTests.test_serializer.<locals>.SomeValueN)r0   r1   r2   r(   r!   r   	SomeValuerj   e   s        Dr!   rk   c                        e Zd Zd Z fdZdS )-BasicTests.test_serializer.<locals>.SomeFieldc                     dS )N	somevaluer(   )r   rR   s     r   get_prep_valuez<BasicTests.test_serializer.<locals>.SomeField.get_prep_valuek   s    "{r!   c                     S r#   r(   )r   rR   
expression
connection
some_values       r   from_db_valuez;BasicTests.test_serializer.<locals>.SomeField.from_db_valuen   s	    !!r!   N)r0   r1   r2   rp   ru   )rt   s   r   	SomeFieldrm   j   s=        # # #" " " " " " "r!   rv   c                       e Zd Z ej                    Z ej                    Z ej                    Z	 ej
                    Z ej
                    Z ej
                    Z              ZdS )-BasicTests.test_serializer.<locals>.SomeModelN)r0   r1   r2   r	   DateTimeFielddt	TimeFieldt	DateFieldd
ImageFieldimg1img2img3	something)rv   s   r   	SomeModelrx   q   sz        %%''B  ""A  ""A$6$&&D$6$&&D$6$&&D!	IIIr!   r   c                     d S r#   r(   r&   s    r   methodz*BasicTests.test_serializer.<locals>.methodz   s    Dr!   )rz   r~   r   r|   s   %PDFzfoo.pdf)namesC   PNG

   IHDR          7n$   
IDATxc`    Hq    IENDB`zfoo.pnghellor   r]   i  )r	   FieldModelr   nowr   todaytimer   r   r   r   nonfieldr   serialize_instancedeserialize_instancer_   getattrr   r   r   r~   rz   r|   hourminutesecondintmicrosecond)r   rk   r   r   instancedata	instance2t1t2rv   rt   s            @@r   test_serializerzBasicTests.test_serializerd   sQ   	 	 	 	 	 	 	 	 Y[[
	" 	" 	" 	" 	" 	" 	" 	" 	" 	"	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$	 	 	 9|~~jll lnn!!##	
 
 
 $G)<<<#3 	
 
 
 !#'11.y$??	8T::FCCCHd;;TBBB,j999,i888,i888,b111*I,>???Y[111))++Y\->->-@-@AAAZ%[!2!2!4!45
 		U 		UFB RWbg...RY	222RY	222 S$!677R^d=R9S9STTTT		U 		Ur!   c                 |    G d dt           j                  } |d          }t          j        |          }t          j        ||          }|                     |d         d           |                     |d         d           |                     |j        d           |                     |j        d	           d S )
Nc                   J    e Zd Z ej                    Z ej                    ZdS )@BasicTests.test_serializer_binary_field.<locals>.SomeBinaryModelN)r0   r1   r2   r	   BinaryFieldbbbb_emptyr(   r!   r   SomeBinaryModelr      s.        ##%%B)v)++HHHr!   r   s   some binary data)r   r   zc29tZSBiaW5hcnkgZGF0YQ==r   r]   r!   )r	   r   r   r   r   r_   r   r   )r   r   r   
serializeddeserializeds        r   test_serializer_binary_fieldz'BasicTests.test_serializer_binary_field   s    	, 	, 	, 	, 	,fl 	, 	, 	, #?&9:::-h77
1/:NND)+EFFFJ/444*=>>>.44444r!   c                 d   d }t           j        s$| j                            d          }d|j        d<   |                     t          j        |d          d           |                     t          j        |dd          d           |                     t          j        |d	          d	           d S )
N/zexample.comSERVER_NAMEz/foozhttp://example.com/fooftp)protocolzftp://example.com/foozhttp://foo.com/bar)r   SITES_ENABLEDrX   rI   METAr_   r   build_absolute_uri)r   rM   s     r   test_build_absolute_uriz"BasicTests.test_build_absolute_uri   s    ) 	8l&&s++G*7GL'$Wf557O	
 	
 	
 	$WfuEEE#	
 	
 	
 	$W.BCC 	
 	
 	
 	
 	
r!   c                 b    d}d}t          |          |k    sJ t          |          |k    sJ d S )Nl   '  n20 brxk553wvxbf3)r   r   )r   nb36s      r   test_int_to_base36zBasicTests.test_int_to_base36   sD     Q3&&&&S!!Q&&&&&&r!   c                 d   ddl m} |j                            d          }t          j        r7ddlm} |j        	                    |j        
                                           | j                            d          }t          j        |d          }|                     |j        d	           d S )
Nr   )	SocialAppgoogle)provider)Sitez/tests/test_403_csrf.htmlztests/test_403_csrf.html)template_namei  )allauth.socialaccount.modelsr   objectscreater   r   django.contrib.sites.modelsr   sitesaddget_currentrX   rI   r   csrf_failurer_   r   )r   r   appr   rM   rA   s         r   "test_templatetag_with_csrf_failurez-BasicTests.test_templatetag_with_csrf_failure   s    ::::::&&&99% 	6888888IMM$,2244555,""#>?? $W<VWWW 	-s33333r!   N)r0   r1   r2   rY   rc   rg   r   r   r   r   r   r(   r!   r   rV   rV   R   s        ( ( (P P P: : :>U >U >U@5 5 5
 
 
"' ' '4 4 4 4 4r!   rV   )
__future__r   r   rG   r   r   unittest.mockr   django.core.files.baser   	django.dbr	   django.testr
   r   django.utils.httpr   r   django.viewsr   allauthr   r]   r   objectr   r5   rV   r(   r!   r   <module>r      sn   ' ' ' ' ' '   # # # # # # # #       . . . . . .       0 0 0 0 0 0 0 0 : : : : : : : :                        + + + + +V + + +6 5  5  5  5  5  5  5  5FH4 H4 H4 H4 H4 H4 H4 H4 H4 H4r!   