a
    _14`                     @   s   d dl mZ d dlZd dlZd dlmZmZ d dl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 zd dlmZmZ W n" ey   d dlmZmZ Y n0 G dd deZG dd dZG dd deZdS )    )unicode_literalsN)datedatetime)ContentFile)models)RequestFactoryTestCase)base36_to_intint_to_base36)csrf   )utils)Mockpatchc                   @   s2   e Zd Zd
ddZdd Zdd Zedd	 ZdS )MockedResponseNc                 C   s(   |d u ri }|| _ |d| _|| _d S Nutf8)status_codeencodecontentheaders)selfr   r   r    r   E/var/www/html/Ranjet/env/lib/python3.9/site-packages/allauth/tests.py__init__   s
    zMockedResponse.__init__c                 C   s   t | jS N)jsonloadstextr   r   r   r   r   !   s    zMockedResponse.jsonc                 C   s   d S r   r   r   r   r   r   raise_for_status$   s    zMockedResponse.raise_for_statusc                 C   s   | j dS r   )r   decoder   r   r   r   r   '   s    zMockedResponse.text)N)__name__
__module____qualname__r   r   r    propertyr   r   r   r   r   r      s
   
r   c                   @   s$   e Zd Zdd Zdd Zdd ZdS )mocked_responsec                 G   s   t || _d S r   )list	responses)r   r(   r   r   r   r   -   s    zmocked_response.__init__c                    sL   t j _t j _t j _ fdd}|t jt _|t jt _|t jt _d S )Nc                    s    fdd}|S )Nc                     s    j rj dS  | i |S )Nr   )r(   pop)argskwargs)fr   r   r   new_f6   s    zBmocked_response.__enter__.<locals>.mockable_request.<locals>.new_fr   )r,   r-   r   )r,   r   mockable_request5   s    z3mocked_response.__enter__.<locals>.mockable_request)requestsgetorig_getpost	orig_postrequestorig_request)r   r.   r   r   r   	__enter__0   s    zmocked_response.__enter__c                 C   s   | j t_| jt_| jt_d S r   )r1   r/   r0   r3   r2   r5   r4   )r   typevalue	tracebackr   r   r   __exit__A   s    zmocked_response.__exit__N)r"   r#   r$   r   r6   r:   r   r   r   r   r&   ,   s   r&   c                   @   sL   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dS )
BasicTestsc                 C   s   t  | _d S r   )r   factoryr   r   r   r   setUpH   s    zBasicTests.setUpc                 C   s.   g d}|D ]\}}|  t|g| qd S )N))za.b-c@example.comza.b-c)u   Üsêrnamêusername)z	User NameZ	user_name) user)assertEqualr   Zgenerate_unique_username)r   Zexamplesinputr>   r   r   r   test_generate_unique_usernameK   s    z(BasicTests.test_generate_unique_usernamec                 C   s   d}|  |t| d S )NzJthis.email.address.is.a.bit.too.long.but.should.still.validate@example.com)rA   r   Zvalid_email_or_none)r   sr   r   r   test_email_validationU   s    z BasicTests.test_email_validationc           
         s  G dd d}| G fdddt j G  fdddt j}dd }|t t t  d	}td
}d|_	||_
d|_||_d|_t|}t||}| 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 ]Z\}}	| |j|	j | |j|	j | |j|	j | t|jd t|	jd  qbd S )Nc                   @   s   e Zd ZdS )z-BasicTests.test_serializer.<locals>.SomeValueN)r"   r#   r$   r   r   r   r   	SomeValueZ   s   rF   c                       s8   e Zd Zdd Zejdk r( fddZn fddZdS )z-BasicTests.test_serializer.<locals>.SomeFieldc                 S   s   dS )NZ	somevaluer   )r   r8   r   r   r   get_prep_value`   s    z<BasicTests.test_serializer.<locals>.SomeField.get_prep_value)   r   c                    s    S r   r   )r   r8   
expression
connectioncontext
some_valuer   r   from_db_valuee   s    z;BasicTests.test_serializer.<locals>.SomeField.from_db_valuec                    s    S r   r   )r   r8   rI   rJ   rL   r   r   rN   j   s    N)r"   r#   r$   rG   djangoVERSIONrN   r   rL   r   r   	SomeField_   s   
rQ   c                       sB   e Zd Ze Ze Ze Z	e
 Ze
 Ze
 Z  ZdS )z-BasicTests.test_serializer.<locals>.SomeModelN)r"   r#   r$   r   ZDateTimeFielddtZ	TimeFieldtZ	DateFielddZ
ImageFieldimg1img2img3	somethingr   )rQ   r   r   	SomeModelm   s   rY   c                 S   s   d S r   r   r   r   r   r   methodv   s    z*BasicTests.test_serializer.<locals>.method)rR   rT   rX   rS   s   %PDFzfoo.pdfzfoo.pngZhellorZ   r?   i  )r   ZFieldModelr   nowr   todaytimer   namerU   rV   rZ   Znonfieldr   serialize_instancedeserialize_instancerA   getattrrX   rW   rT   rR   rS   hourminutesecondintmicrosecond)
r   rF   rY   rZ   instanceZcontent_filedataZ	instance2t1t2r   )rQ   rM   r   test_serializerY   sF    	


zBasicTests.test_serializerc                 C   sr   G dd dt j}|dd}t|}t||}| |d d | |d d | |jd | |jd	 d S )
Nc                   @   s   e Zd Ze Ze ZdS )z@BasicTests.test_serializer_binary_field.<locals>.SomeBinaryModelN)r"   r#   r$   r   ZBinaryFieldbbbb_emptyr   r   r   r   SomeBinaryModel   s   ro   s   some binary data)rm   rm   zc29tZSBiaW5hcnkgZGF0YQ==rn   r?       )r   r[   r   r`   ra   rA   rm   rn   )r   ro   rh   Z
serializedZdeserializedr   r   r   test_serializer_binary_field   s    

z'BasicTests.test_serializer_binary_fieldc                 C   sD   |  td dd |  tjd dddd |  td dd d S )Nz/foozhttp://example.com/fooftp)protocolzftp://example.com/foozhttp://foo.com/bar)rA   r   Zbuild_absolute_urir   r   r   r   test_build_absolute_uri   s    
z"BasicTests.test_build_absolute_uric                 C   s,   d}d}t ||ksJ t||ks(J d S )Nl   '  n20 Zbrxk553wvxbf3)r
   r	   )r   nZb36r   r   r   test_int_to_base36   s    zBasicTests.test_int_to_base36c                 C   s,   | j d}tj|dd}| |jd d S )Nz/tests/test_403_csrf.htmlztests/test_403_csrf.html)Ztemplate_namei  )r<   r0   r   Zcsrf_failurerA   r   )r   r4   responser   r   r   "test_templatetag_with_csrf_failure   s    z-BasicTests.test_templatetag_with_csrf_failureN)r"   r#   r$   r=   rC   rE   rl   rq   rt   rv   rx   r   r   r   r   r;   G   s   
Dr;   )
__future__r   r   r/   r   r   rO   Zdjango.core.files.baser   Z	django.dbr   Zdjango.testr   r   Zdjango.utils.httpr	   r
   Zdjango.viewsr   r?   r   Zunittest.mockr   r   ImportErrorZmockobjectr   r&   r;   r   r   r   r   <module>   s"   