U
    Zc                     @   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 d
dlmZ zd dlmZmZ W n$ ek
r   d dlmZmZ Y nX 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)app_settings   )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 kri }|| _ |d| _|| _d S Nutf8)status_codeencodecontentheaders)selfr   r   r    r   Q/var/www/html/crackeverytest/cet_env/lib/python3.8/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}t |dS )Nc                     s   j rj dS  | |S )Nr   )r)   pop)argskwargs)fr   r   r   new_f8   s    zBmocked_response.__enter__.<locals>.mockable_request.<locals>.new_f)Zside_effect)r   )r-   r.   r    )r-   r   mockable_request7   s    z3mocked_response.__enter__.<locals>.mockable_request)requestsgetorig_getpost	orig_postrequestorig_request)r   r/   r   r    r   	__enter__2   s    zmocked_response.__enter__c                 C   s   | j t_| jt_| jt_d S r   )r2   r0   r1   r4   r3   r6   r5   )r   typevalue	tracebackr   r   r   __exit__C   s    zmocked_response.__exit__N)r#   r$   r%   r   r7   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   setUpJ   s    zBasicTests.setUpc                 C   s2   ddddg}|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_usernameM   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)rB   r   Zvalid_email_or_none)r   sr   r   r   test_email_validationW   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   	SomeValue\   s   rG   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   r9   r   r   r   get_prep_valueb   s    z<BasicTests.test_serializer.<locals>.SomeField.get_prep_value)   r   c                    s    S r   r   )r   r9   
expression
connectioncontext
some_valuer   r   from_db_valueg   s    z;BasicTests.test_serializer.<locals>.SomeField.from_db_valuec                    s    S r   r   )r   r9   rJ   rK   rM   r   r   rO   l   s    N)r#   r$   r%   rH   djangoVERSIONrO   r   rM   r   r   	SomeFielda   s   
rR   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   )rR   r   r   	SomeModelo   s   rZ   c                 S   s   d S r   r   r    r   r   r   methodx   s    z*BasicTests.test_serializer.<locals>.method)rS   rU   rY   rT   s   %PDFzfoo.pdfzfoo.pngZhellor[   r@   i  )r   ZFieldModelr   nowr   todaytimer   namerV   rW   r[   Znonfieldr   serialize_instancedeserialize_instancerB   getattrrY   rX   rU   rS   rT   hourminutesecondintmicrosecond)
r   rG   rZ   r[   instanceZcontent_filedataZ	instance2t1t2r   )rR   rN   r   test_serializer[   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   rp   s   some binary data)rn   rn   zc29tZSBiaW5hcnkgZGF0YQ==ro   r@       )r   r\   r   ra   rb   rB   rn   ro   )r   rp   ri   Z
serializedZdeserializedr   r   r   test_serializer_binary_field   s    

z'BasicTests.test_serializer_binary_fieldc                 C   sd   d }t js | jd}d|jd< | t|dd | tj|dddd | t|d	d	 d S )
N/zexample.comZSERVER_NAMEz/foozhttp://example.com/fooftp)protocolzftp://example.com/foozhttp://foo.com/bar)r   ZSITES_ENABLEDr=   r1   ZMETArB   r   Zbuild_absolute_uri)r   r5   r   r   r   test_build_absolute_uri   s     

 
z"BasicTests.test_build_absolute_uric                 C   s,   d}d}t ||kstt||ks(td S )Nl   '  n20 Zbrxk553wvxbf3)r
   AssertionErrorr	   )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=   r1   r   Zcsrf_failurerB   r   )r   r5   responser   r   r   "test_templatetag_with_csrf_failure   s    z-BasicTests.test_templatetag_with_csrf_failureN)r#   r$   r%   r>   rD   rF   rm   rr   rv   ry   r{   r   r   r   r   r<   I   s   
Dr<   ) 
__future__r   r   r0   r   r   rP   Zdjango.core.files.baser   Z	django.dbr   Zdjango.testr   r   Zdjango.utils.httpr	   r
   Zdjango.viewsr   allauthr   r@   r   Zunittest.mockr   r   ImportErrorZmockobjectr   r'   r<   r   r   r   r   <module>   s$   