
    f                         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mZ  G d
 d      Z G d d      Z G d de      Zy)    N)datedatetimeMock)ContentFile)models)RequestFactoryTestCase)base36_to_intint_to_base36)csrf)app_settingsutilsc                   @    e Zd ZddZd Zd Zed        Zed        Zy)MockedResponseNc                     |i }|| _         t        |t              rt        j                  |      }d|d<   |j                  d      | _        || _        y )Nzapplication/jsonzcontent-typeutf8)status_code
isinstancedictjsondumpsencodecontentheaders)selfr   r   r   s       H/var/www/cs2snipe.com/venv/lib/python3.12/site-packages/allauth/tests.py__init__zMockedResponse.__init__   sM    ?G&gt$jj)G&8GN#~~f-    c                 @    t        j                  | j                        S N)r   loadstextr   s    r   r   zMockedResponse.json   s    zz$))$$r   c                      y 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                 8    | j                   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      s9    	% , , + +r   r   c                   $    e Zd ZdddZd Zd Zy)mocked_responseN)callbackc                2    || _         t        |      | _        y r!   )r4   list	responses)r   r4   r7   s      r   r   zmocked_response.__init__+   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                  _        y )Nc                 *      fd}t        |      S )Nc                      j                   r j                   | i |}||S j                  r9j                  j                  d      }t        |t              rt        d|      }|S  | i |S )Nr      )r4   r7   popr   r   r   )argskwargsresponserespfr   s       r   new_fzBmocked_response.__enter__.<locals>.mockable_request.<locals>.new_f5   sp    ==,t}}d=f=H+'>>>>--a0D!$--c48K$)&))r   )side_effectr   )rA   rB   r   s   ` r   mockable_requestz3mocked_response.__enter__.<locals>.mockable_request4   s    
* E**r   )requestsSessiongetorig_getpost	orig_postrequestorig_request)r   rD   s   ` r   	__enter__zmocked_response.__enter__/   s     ((,,!))..$,,44	+  00@0@0D0DE 01A1A1F1F G#3H4D4D4L4L#M r   c                     | j                   t        j                  _        | j                  t        j                  _        | j                  t        j                  _        y r!   )rH   rE   rF   rG   rJ   rI   rL   rK   )r   typevalue	tracebacks       r   __exit__zmocked_response.__exit__G   s:    #}} $#'#4#4 r   )r.   r/   r0   r   rM   rR   r&   r   r   r3   r3   *   s    ,0 )N05r   r3   c                   <    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
y	)

BasicTestsc                 "    t               | _        y r!   )r	   factoryr$   s    r   setUpzBasicTests.setUpN   s    %'r   c                 l    g d}|D ]+  \  }}| j                  t        j                  |g      |       - y )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inputrY   s       r   test_generate_unique_usernamez(BasicTests.test_generate_unique_usernameQ   s=    
  ( 	POE8U;;UGDhO	Pr   c                 R    d}| j                  |t        j                  |             y )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55a89r   c                   	
  G d d      } |       
 G 
fddt         j                        	 G 	fddt         j                        }d } |t        j                         t        j                         
t        j                         j                               }t        d	d
      |_	        t        dd      |_
        ||_        d|_        t        j                  |      }t        j                  ||      }| j!                  t#        |dd       |       | j!                  t#        |dd       d        | j!                  |j$                  
       | j!                  |j                  j&                  d
       | j!                  |j                  j&                  d       | j!                  |j(                  j&                  d       | j!                  |j                  |j                         | j!                  |j*                  |j*                         | j!                  |j,                  j                         |j,                  j                                |j.                  |j.                  f|j,                  j                         |j,                  j                         ffD ]  \  }}| j!                  |j0                  |j0                         | j!                  |j2                  |j2                         | j!                  |j4                  |j4                         | j!                  t7        |j8                  dz        t7        |j8                  dz                y )Nc                       e Zd Zy)-BasicTests.test_serializer.<locals>.SomeValueN)r.   r/   r0   r&   r   r   	SomeValuerh   `   s    r   ri   c                       e Zd Zd Z fdZy)-BasicTests.test_serializer.<locals>.SomeFieldc                      y)N	somevaluer&   )r   rP   s     r   get_prep_valuez<BasicTests.test_serializer.<locals>.SomeField.get_prep_valuef   s    "r   c                     S r!   r&   )r   rP   
expression
connection
some_values       r   from_db_valuez;BasicTests.test_serializer.<locals>.SomeField.from_db_valuei   s	    !!r   N)r.   r/   r0   rn   rs   )rr   s   r   	SomeFieldrk   e   s    #"r   rt   c                       e Zd Z ej                         Z ej                         Z ej                         Z	 ej                         Z ej                         Z ej                         Z W         Zy)-BasicTests.test_serializer.<locals>.SomeModelN)r.   r/   r0   r   DateTimeFielddt	TimeFieldt	DateFieldd
ImageFieldimg1img2img3	something)rt   s   r   	SomeModelrv   l   sj    %%%'B   "A   "A$6$$&D$6$$&D$6$$&D!Ir   r   c                      y r!   r&   r$   s    r   methodz*BasicTests.test_serializer.<locals>.methodu   s    r   )rx   r|   r   rz   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|   rx   rz   hourminutesecondintmicrosecond)r   ri   r   r   instancedata	instance2t1t2rt   rr   s            @@r   test_serializerzBasicTests.test_serializer_   s|   	 	 [
	" 	"	$ 	$	 ||~jjl lln!!#	
 $G)<#3 	
 !#''1..y$?	8T:FCHd;TB,,j9,,i8,,i8,,b1**I,>,>?Y[[1))+Y\\->->-@AZZ%[[!2!2!45
 		UFB RWWbgg.RYY		2RYY		2 S$!67R^^d=R9ST		Ur   c                 b    G d dt         j                        } |d      }t        j                  |      }t        j                  ||      }| j                  |d   d       | j                  |d   d       | j                  |j                  d       | j                  |j                  d	       y )
Nc                   P    e Zd Z ej                         Z ej                         Zy)@BasicTests.test_serializer_binary_field.<locals>.SomeBinaryModelN)r.   r/   r0   r   BinaryFieldbbbb_emptyr&   r   r   SomeBinaryModelr      s"    ###%B)v))+Hr   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    	,fll 	, #&9:--h7
11/:ND)+EFJ/4*=>..4r   c                 d   d }t         j                  s*| j                  j                  d      }d|j                  d<   | j                  t        j                  |d      d       | j                  t        j                  |dd      d       | j                  t        j                  |d	      d	       y )
N/zexample.comSERVER_NAMEz/foozhttp://example.com/fooftp)protocolzftp://example.com/foozhttp://foo.com/bar)r   SITES_ENABLEDrV   rG   METAr]   r   build_absolute_uri)r   rK   s     r   test_build_absolute_uriz"BasicTests.test_build_absolute_uri   s    ))ll&&s+G*7GLL'$$Wf57O	
 	$$WfuE#	
 	$$W.BC 	
r   c                 L    d}d}t        |      |k(  sJ t        |      |k(  sJ y )Nl   '  n20 brxk553wvxbf3)r   r   )r   nb36s      r   test_int_to_base36zBasicTests.test_int_to_base36   s2     Q3&&&S!Q&&&r   c                 v   ddl m} |j                  j                  d      }t        j
                  r9ddlm} |j                  j                  |j                  j                                | j                  j                  d      }t        j                  |d      }| j                  |j                   d	       y )
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_currentrV   rG   r   csrf_failurer]   r   )r   r   appr   rK   r?   s         r   "test_templatetag_with_csrf_failurez-BasicTests.test_templatetag_with_csrf_failure   s    :&&&9%%8IIMM$,,2245,,""#>? $$W<VW 	--s3r   N)r.   r/   r0   rW   ra   re   r   r   r   r   r   r&   r   r   rT   rT   M   s-    (P:>U@5
"'4r   rT   )r   rE   r   r   unittest.mockr   django.core.files.baser   	django.dbr   django.testr	   r
   django.utils.httpr   r   django.viewsr   allauthr   r   r   r3   rT   r&   r   r   <module>r      sF      #  .  0 :  '+ +6 5  5FH4 H4r   