B
    é¹`ò5  ã               @   s‚   d dl Z G dd„ de jƒZG dd„ de jƒZG dd„ dƒZG dd	„ d	ƒZG d
d„ de jƒZG dd„ de jƒZG dd„ de jƒZdS )é    Nc               @   s¼   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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#d$„ Zd%d&„ Zd'd(„ Zd)d*„ Zd+d,„ Zd-S ).ÚTestPyramidBeakerSessionObjectc             K   s   ddl m} |f |Ž|ƒS )Nr   )ÚBeakerSessionFactoryConfig)Úpyramid_beakerr   )ÚselfÚrequestÚoptionsr   © r   ú\/home/kop/projects/devel/pgwui/test_venv/lib/python3.7/site-packages/pyramid_beaker/tests.pyÚ_makeOne   s    z'TestPyramidBeakerSessionObject._makeOnec             C   s6   ddl m} ddlm} tƒ }|  |¡}|||ƒ d S )Nr   )ÚverifyObject)ÚISession)Zzope.interface.verifyr   Úpyramid.interfacesr   ÚDummyRequestr
   )r   r   r   r   Úsessionr   r   r	   Útest_instance_conforms   s
    
z5TestPyramidBeakerSessionObject.test_instance_conformsc             C   sj   t ƒ }|  |¡}d|d< | ¡  |  | ¡ d¡ |  t|jƒdk¡ tƒ }|jd ||ƒ |  |j	¡ d S )Né*   ZfredTr   )
r   r
   ÚsaveÚassertEqualZaccessedÚ
assertTrueÚlenÚ	callbacksÚDummyResponseÚ
headerlist)r   r   r   Úresponser   r   r	   Útest_callback   s    
z,TestPyramidBeakerSessionObject.test_callbackc             C   s    t ƒ }|  |¡}|  |j¡ d S )N)r   r
   r   Únew)r   r   r   r   r   r	   Útest_new   s    
z'TestPyramidBeakerSessionObject.test_newc             C   s.   t ƒ }|  |¡}d|d< |  |jd d¡ d S )Né   ÚaÚ_dirtyT)r   r
   r   Ú__dict__)r   r   r   r   r   r	   Útest___setitem__calls_save   s    
z9TestPyramidBeakerSessionObject.test___setitem__calls_savec             C   s<   t ƒ }|  |¡}d|d< |jd= |d= |  |jd d¡ d S )Nr   r   r   T)r   r
   r    r   )r   r   r   r   r   r	   Útest___delitem__calls_save%   s    
z9TestPyramidBeakerSessionObject.test___delitem__calls_savec             C   s.   t ƒ }|  |¡}| ¡  |  |jd d¡ d S )Nr   T)r   r
   Úchangedr   r    )r   r   r   r   r   r	   Útest_changed-   s    
z+TestPyramidBeakerSessionObject.test_changedc             C   sD   t ƒ }|  |¡}d|d< | ¡  |  d|k¡ |  |jd d¡ d S )Nr   r   r   T)r   r
   ÚclearÚassertFalser   r    )r   r   r   r   r   r	   Ú
test_clear3   s    
z)TestPyramidBeakerSessionObject.test_clearc             C   sT   t ƒ }|  |¡}|jddidd |  d|k¡ |  d|k¡ |  |jd d¡ d S )Nr   r   é   )Úbr)   r   T)r   r
   Úupdater   r   r    )r   r   r   r   r   r	   Útest_update;   s    
z*TestPyramidBeakerSessionObject.test_updatec             C   s@   t ƒ }|  |¡}| dd¡ |  d|k¡ |  |jd d¡ d S )Nr   r)   r   T)r   r
   Ú
setdefaultr   r   r    )r   r   r   r   r   r	   Útest_setdefaultC   s
    
z.TestPyramidBeakerSessionObject.test_setdefaultc             C   s\   t ƒ }|  |¡}d|d< d|jd< | d¡}|  d|k¡ |  |d¡ |  |jd d¡ d S )Nr   r   Fr   T)r   r
   r    Úpopr&   r   )r   r   r   Úresultr   r   r	   Útest_popJ   s    


z'TestPyramidBeakerSessionObject.test_popc             C   sL   t ƒ }|  |¡}d|d< d|jd< | ¡ }|  |d ¡ |  |jd d¡ d S )Nr   r   Fr   T)r   r
   r    ÚpopitemZassertNotEqualr   )r   r   r   r/   r   r   r	   Útest_popitemT   s    

z+TestPyramidBeakerSessionObject.test_popitemc             C   s<   t ƒ }|  |¡}| d¡ | d¡ |  |d ddg¡ d S )NZmsg1Zmsg2Ú_f_)r   r
   Úflashr   )r   r   r   r   r   r	   Útest_flash_default]   s
    


z1TestPyramidBeakerSessionObject.test_flash_defaultc             C   sX   t ƒ }|  |¡}| dd¡ | dd¡ | dd¡ | dd¡ |  |d ddg¡ d S )NZwarn1ÚwarnZwarn2Zerr1ÚerrorZerr2Z_f_warn)r   r
   r4   r   )r   r   r   r   r   r	   Útest_flash_mixedd   s    
z/TestPyramidBeakerSessionObject.test_flash_mixedc             C   sJ   t ƒ }|  |¡}ddg}||d< | ¡ }|  ||¡ |  | d¡d ¡ d S )NÚoneÚtwor3   )r   r
   Ú	pop_flashr   Úget)r   r   r   Úqueuer/   r   r   r	   Útest_pop_flash_default_queuem   s    
z;TestPyramidBeakerSessionObject.test_pop_flash_default_queuec             C   sL   t ƒ }|  |¡}ddg}||d< | d¡}|  ||¡ |  | d¡d ¡ d S )Nr9   r:   Ú_f_errorr7   )r   r
   r;   r   r<   )r   r   r   r=   r/   r   r   r	   Útest_pop_flash_nodefault_queuev   s    

z=TestPyramidBeakerSessionObject.test_pop_flash_nodefault_queuec             C   sJ   t ƒ }|  |¡}ddg}||d< | ¡ }|  ||¡ |  | d¡|¡ d S )Nr9   r:   r3   )r   r
   Ú
peek_flashr   r<   )r   r   r   r=   r/   r   r   r	   Útest_peek_flash_default_queue   s    
z<TestPyramidBeakerSessionObject.test_peek_flash_default_queuec             C   sL   t ƒ }|  |¡}ddg}||d< | d¡}|  ||¡ |  | d¡|¡ d S )Nr9   r:   r?   r7   )r   r
   rA   r   r<   )r   r   r   r=   r/   r   r   r	   Útest_peek_flash_nodefault_queueˆ   s    

z>TestPyramidBeakerSessionObject.test_peek_flash_nodefault_queuec             C   s>   t ƒ }|  |¡}| ¡ }|  ||d ¡ |  t|ƒ|k¡ d S )NÚ_csrft_)r   r
   Znew_csrf_tokenr   r   Ústr)r   r   r   Útokenr   r   r	   Útest_new_csrf_token‘   s
    
z2TestPyramidBeakerSessionObject.test_new_csrf_tokenc             C   s>   t ƒ }|  |¡}d|d< | ¡ }|  |d¡ |  d|k¡ d S )NrF   rD   )r   r
   Úget_csrf_tokenr   r   )r   r   r   rF   r   r   r	   Útest_get_csrf_token™   s    
z2TestPyramidBeakerSessionObject.test_get_csrf_tokenc             C   s6   t ƒ }|  |¡}| ¡ }|  |¡ |  |d |¡ d S )NrD   )r   r
   rH   r   r   )r   r   r   rF   r   r   r	   Útest_get_csrf_token_new¡   s
    

z6TestPyramidBeakerSessionObject.test_get_csrf_token_newc             C   s@   d}t ƒ }| j||d}| ¡ }|  ||¡ |  |d |¡ d S )NZFOO)Zconstant_csrf_tokenrD   )r   r
   rH   r   )r   Zconstant_tokenr   r   rF   r   r   r	   Útest_get_constant_csrf_token¨   s    z;TestPyramidBeakerSessionObject.test_get_constant_csrf_tokenN)Ú__name__Ú
__module__Ú__qualname__r
   r   r   r   r!   r"   r$   r'   r+   r-   r0   r2   r5   r8   r>   r@   rB   rC   rG   rI   rJ   rK   r   r   r   r	   r      s,   
						r   c               @   s<   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ ZdS )Ú"Test_session_factory_from_settingsc             C   s   ddl m} ||ƒS )Nr   )Úsession_factory_from_settings)r   rP   )r   ÚsettingsrP   r   r   r	   Ú_callFUT³   s    z+Test_session_factory_from_settings._callFUTc             C   s,   dddœ}|   |¡}|  |jdddœ¡ d S )NÚtrueÚfoo)zsession.autozsession.keyT)ÚautoÚkey)rR   r   Ú_options)r   rQ   Úfactoryr   r   r	   Útest_it·   s    

z*Test_session_factory_from_settings.test_itc             C   s$   ddi}|   |¡}|  |jd¡ d S )Nzsession.cookie_on_exceptionrS   T)rR   r   Ú_cookie_on_exception)r   rQ   rX   r   r   r	   Útest_cookie_on_exception_true¼   s    
z@Test_session_factory_from_settings.test_cookie_on_exception_truec             C   s$   ddi}|   |¡}|  |jd¡ d S )Nzsession.cookie_on_exceptionÚfalseF)rR   r   rZ   )r   rQ   rX   r   r   r	   Útest_cookie_on_exception_falseÁ   s    
zATest_session_factory_from_settings.test_cookie_on_exception_falsec             C   s$   ddi}|   |¡}|  |jd¡ d S )Nzsession.constant_csrf_tokenrT   )rR   r   Ú_constant_csrf_token)r   rQ   rX   r   r   r	   Útest_constant_csrf_token_setÆ   s    
z?Test_session_factory_from_settings.test_constant_csrf_token_setc             C   s    i }|   |¡}|  |jd¡ d S )NF)rR   r   r^   )r   rQ   rX   r   r   r	   Útest_constant_csrf_token_unsetË   s    
zATest_session_factory_from_settings.test_constant_csrf_token_unsetN)	rL   rM   rN   rR   rY   r[   r]   r_   r`   r   r   r   r	   rO   ²   s   rO   c               @   s   e Zd Zdd„ Zdd„ ZdS )r   c             C   s   g | _ i | _d S )N)r   Úenviron)r   r   r   r	   Ú__init__Ò   s    zDummyRequest.__init__c             C   s   | j  |¡ d S )N)r   Úappend)r   Úcallbackr   r   r	   Úadd_response_callbackÖ   s    z"DummyRequest.add_response_callbackN)rL   rM   rN   rb   re   r   r   r   r	   r   Ñ   s   r   c               @   s   e Zd Zdd„ ZdS )r   c             C   s
   g | _ d S )N)r   )r   r   r   r	   rb   Ú   s    zDummyResponse.__init__N)rL   rM   rN   rb   r   r   r   r	   r   Ù   s   r   c               @   s<   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ ZdS )Ú Test_session_cookie_on_exceptionc             K   s   ddl m} |f |Ž|ƒS )Nr   )r   )r   r   )r   r   r   r   r   r   r	   r
   ß   s    z)Test_session_cookie_on_exception._makeOnec             C   s"   t ƒ }|  |¡}|  |jd¡ d S )NT)r   r
   r   rZ   )r   r   r   r   r   r	   Ú(test_default_cookie_on_exception_settingã   s    
zITest_session_cookie_on_exception.test_default_cookie_on_exception_settingc             C   s&   t ƒ }| j|dd}|  |jd¡ d S )NF)Úcookie_on_exception)r   r
   r   rZ   )r   r   r   r   r   r	   Ú test_cookie_on_exception_settingè   s    zATest_session_cookie_on_exception.test_cookie_on_exception_settingc             C   s>   d|_ d|d< tƒ }|jd ||ƒ |  t|jƒdk|¡ d S )NTzuse itr   r   )Ú	exceptionr   r   r   r   r   )r   r   r   Úexpectedr   r   r   r	   Ú_assert_session_persistedí   s
    z:Test_session_cookie_on_exception._assert_session_persistedc             C   s"   t ƒ }|  |¡}|  ||d¡ d S )NT)r   r
   rl   )r   r   r   r   r   r	   Ú2test_request_call_back_without_cookie_on_exception÷   s    
zSTest_session_cookie_on_exception.test_request_call_back_without_cookie_on_exceptionc             C   s&   t ƒ }| j|dd}|  ||d¡ d S )NF)rh   )r   r
   rl   )r   r   r   r   r   r	   Ú/test_request_call_back_with_cookie_on_exceptionü   s    zPTest_session_cookie_on_exception.test_request_call_back_with_cookie_on_exceptionN)	rL   rM   rN   r
   rg   ri   rl   rm   rn   r   r   r   r	   rf   Ý   s   
rf   c               @   s<   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ ZdS )ÚTestCacheConfigurationc             C   s   dddddddœS )Nz+default_term, second, short_term, long_termÚmemoryÚ1Ú60Ú300Z3600)zcache.regionsz
cache.typezcache.second.expirezcache.short_term.expirezcache.default_term.expirezcache.long_term.expirer   )r   r   r   r	   Ú_set_settings  s    z$TestCacheConfiguration._set_settingsc             C   sH   ddl m} dd l}|  ¡ }i |j_d|d< ||ƒ |  |jji ¡ d S )Nr   )Úset_cache_regions_from_settingsÚ zcache.regions)r   ru   Úbeakerrt   ÚcacheÚcache_regionsr   )r   ru   rw   rQ   r   r   r	   Útest_add_cache_no_regions  s    z0TestCacheConfiguration.test_add_cache_no_regionsc             C   sh   ddl m} dd l}|  ¡ }i |j_d|d< |d= ||ƒ |jj d¡}|  |d ddd d dd	d
œ¡ d S )Nr   )ru   Údefault_termzcache.regionszcache.default_term.expireé<   rp   Téú   )ÚurlÚexpireÚtypeÚlock_dirÚdata_dirÚenabledZ
key_length)r   ru   rw   rt   rx   ry   r<   r   )r   ru   rw   rQ   r{   r   r   r	   Ú&test_add_cache_single_region_no_expire  s    z=TestCacheConfiguration.test_add_cache_single_region_no_expirec             C   s$  ddl m} dd l}|  ¡ }i |j_d|d< d|d< d|d< d	|d
< d|d< d|d< ||ƒ |jj d¡}|jj d¡}|  | d¡t|d ƒ¡ |  | d¡|d ¡ |  | d¡d¡ |  	| d¡¡ |  | d¡t|d ƒ¡ |  | d¡|d ¡ |  | d¡|d
 ¡ |  
| d¡¡ d S )Nr   )ru   zdefault_term, short_termzcache.regionsrT   zcache.lock_dirrr   zcache.short_term.expireÚfilezcache.default_term.typers   zcache.default_term.expirer\   zcache.default_term.enabledr{   Ú
short_termr   r   r€   rp   rƒ   )r   ru   rw   rt   rx   ry   r<   r   Úintr   r&   )r   ru   rw   rQ   r{   r†   r   r   r	   Útest_add_cache_multiple_region"  s2    

z5TestCacheConfiguration.test_add_cache_multiple_regionc             C   s¨   ddl m} dd l}|  ¡ }i |j_d|d< d|d< d|d< d	|d
< d|d< d|d< ||ƒ |jj d¡}|jj d¡}|  | d¡|d ¡ |  | d¡|d ¡ d S )Nr   )ru   zdefault_term, short_termzcache.regionsrT   zcache.lock_dirz	127.0.0.1z	cache.urlrr   zcache.short_term.expirer…   zcache.default_term.typers   zcache.default_term.expirer{   r†   r~   )r   ru   rw   rt   rx   ry   r<   r   )r   ru   rw   rQ   r{   r†   r   r   r	   Útest_region_inherit_url>  s    z.TestCacheConfiguration.test_region_inherit_urlc             C   st   ddl m} dd l}|  ¡ }d|d< i |j_||ƒ |jj d¡}|jj d¡}|  | d¡¡ |  | d¡¡ d S )Nr   )ru   r\   zcache.enabledr{   r†   rƒ   )r   ru   rw   rt   rx   ry   r<   r&   )r   ru   rw   rQ   r{   r†   r   r   r	   Útest_region_inherit_enabledO  s    z2TestCacheConfiguration.test_region_inherit_enabledN)	rL   rM   rN   rt   rz   r„   rˆ   r‰   rŠ   r   r   r   r	   ro     s   		ro   c               @   s   e Zd Zdd„ ZdS )ÚTestIncludeMec             C   sX   ddl m} ddlm} ddlm} |ji d}||ƒ |j |¡}|  	t
|ƒd¡ d S )Nr   )ÚISessionFactory)Útesting)Ú	includeme)rQ   z3<class 'pyramid_beaker.PyramidBeakerSessionObject'>)r   rŒ   Zpyramidr   r   rŽ   ZsetUpÚregistryZqueryUtilityr   rE   )r   rŒ   r   rŽ   ÚconfigZsession_factoryr   r   r	   Útest_includeme\  s    
zTestIncludeMe.test_includemeN)rL   rM   rN   r‘   r   r   r   r	   r‹   [  s   r‹   )	ZunittestZTestCaser   rO   r   r   rf   ro   r‹   r   r   r   r	   Ú<module>   s    0$Z