U
    {®Þhö-  ã                   @   sz   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
 d dlmZ d dlmZ d dlmZ G d	d
„ d
eeƒZdS )é    )ÚGroupÚ
Permission)ÚTestCase)Úreverse)Útimezone)Úescape)ÚPage)Ú
SimplePage)ÚWagtailTestUtilsc                   @   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#S )$ÚTestLockingc                 C   s@   t jjdd| _|  ¡ | _tddddd| _| jj| jd d S )	Né   ©ÚidzHello world!zhello-worldZhelloF)ÚtitleZslugÚcontentÚlive)Úinstance)	r   ÚobjectsÚgetÚ	root_pageÚloginÚuserr	   Ú
child_pageZ	add_child)Úself© r   ús/var/www/dating/data/www/fatepal.com/env/lib/python3.8/site-packages/wagtail/admin/tests/pages/test_page_locking.pyÚsetUp   s    
üzTestLocking.setUpc                 C   sr   | j  td| jjfd¡}|  |td| jjfd¡ tjj	| jjd}|  
|j¡ |  |j| j¡ |  |j¡ d S )Núwagtailadmin_pages:lock©ÚargsÚwagtailadmin_explorer   ©ÚclientÚpostr   r   r   ÚassertRedirectsr   r   r   r   Ú
assertTrueÚlockedÚassertEqualÚ	locked_byr   ÚassertIsNotNoneÚ	locked_at©r   ÚresponseÚpager   r   r   Útest_lock_post   s    ÿ ÿzTestLocking.test_lock_postc                 C   sb   | j  td| jjfd¡}|  |jd¡ tjj| jjd}|  	|j
¡ |  |j¡ |  |j¡ d S )Nr   r   é•  r   )r"   r   r   r   r   r'   Ústatus_coder   r   ÚassertFalser&   ÚassertIsNoner(   r*   r+   r   r   r   Útest_lock_get-   s    ÿzTestLocking.test_lock_getc                 C   sš   d| j _| j| j _t ¡ | j _| j  ¡  | j 	t
d| j jfd¡}|  |t
d| jjfd¡ tjj| j jd}|  |j¡ |  |j| j¡ |  |j¡ d S )NTr   r   r    r   )r   r&   r   r(   r   Únowr*   Úsaver"   r#   r   r   r$   r   r   r   r   r%   r'   r)   r+   r   r   r   Útest_lock_post_already_locked;   s    

ÿ ÿz)TestLocking.test_lock_post_already_lockedc                 C   s†   | j  td| jjfddtd| jjfdi¡}|  |td| jjfd¡ tjj| jjd}|  	|j
¡ |  |j| j¡ |  |j¡ d S )Nr   r   Únextúwagtailadmin_pages:editr   )r"   r#   r   r   r   r$   r   r   r   r%   r&   r'   r(   r   r)   r*   r+   r   r   r   Ú!test_lock_post_with_good_redirectQ   s    þ ÿz-TestLocking.test_lock_post_with_good_redirectc                 C   sx   | j  td| jjfdddi¡}|  |td| jjfd¡ tjj	| jjd}|  
|j¡ |  |j| j¡ |  |j¡ d S )Nr   r   r7   úhttp://www.google.co.ukr    r   r!   r+   r   r   r   Ú test_lock_post_with_bad_redirectb   s    þ ÿz,TestLocking.test_lock_post_with_bad_redirectc                 C   s\   | j  tddd¡}|  |jd¡ tjj| jj	d}|  
|j¡ |  |j¡ |  |j¡ d S )Nr   ©i'  r   é”  r   )r"   r#   r   r'   r0   r   r   r   r   r   r1   r&   r2   r(   r*   r+   r   r   r   Útest_lock_post_bad_pages   s    z#TestLocking.test_lock_post_bad_pagec                 C   sŽ   d| j _| j j tjjddd¡ | j  ¡  | j 	t
d| jjfd¡}|  |jd¡ tjj| jjd}|  |j¡ |  |j¡ |  |j¡ d S )	NFZwagtailadminZaccess_admin)Zcontent_type__app_labelÚcodenamer   r   é.  r   )r   Úis_superuserZuser_permissionsÚaddr   r   r   r5   r"   r#   r   r   r   r'   r0   r   r1   r&   r2   r(   r*   r+   r   r   r   Útest_lock_post_bad_permissions   s      ÿÿ
ÿz*TestLocking.test_lock_post_bad_permissionsc                 C   sT   d| j _| j| j _t ¡ | j _| j  ¡  | j 	t
dƒ¡}|  |d¡ |  |d¡ d S )NTZwagtailadmin_homezYour locked pagesZUnlock)r   r&   r   r(   r   r4   r*   r5   r"   r   r   ÚassertContains)r   r,   r   r   r   Ú!test_locked_pages_dashboard_panel–   s    

z-TestLocking.test_locked_pages_dashboard_panelc                 C   s–   d| j _| j| j _t ¡ | j _| j  ¡  | j 	t
d| j jfd¡}|  |t
d| jjfd¡ tjj| j jd}|  |j¡ |  |j¡ |  |j¡ d S )NTúwagtailadmin_pages:unlockr   r    r   ©r   r&   r   r(   r   r4   r*   r5   r"   r#   r   r   r$   r   r   r   r   r1   r2   r+   r   r   r   Útest_unlock_post    s    

ÿ ÿzTestLocking.test_unlock_postc                 C   sŽ   d| j _| j| j _t ¡ | j _| j  ¡  | j 	t
d| j jfd¡}|  |jd¡ tjj	| j jd}|  |j¡ |  |j| j¡ |  |j¡ d S )NTrF   r   r/   r   )r   r&   r   r(   r   r4   r*   r5   r"   r   r   r   r'   r0   r   r   r%   r)   r+   r   r   r   Útest_unlock_get¶   s    

ÿzTestLocking.test_unlock_getc                 C   sn   | j  td| jjfd¡}|  |td| jjfd¡ tjj	| jjd}|  
|j¡ |  |j¡ |  |j¡ d S )NrF   r   r    r   )r"   r#   r   r   r   r$   r   r   r   r   r1   r&   r2   r(   r*   r+   r   r   r   Ú!test_unlock_post_already_unlockedÊ   s    ÿ ÿz-TestLocking.test_unlock_post_already_unlockedc                 C   sÎ   d| j _| j| j _t ¡ | j _| j  ¡  | jj	t
d| j jfddt
d| j jfdidd}|  |t
d| j jfd¡ |  |tdƒ¡ |  |tdƒ¡ tjj| j jd	}|  |j¡ |  |j¡ |  |j¡ d S )
NTrF   r   r7   r8   )Úfollowú2Page 'Hello world! (simple page)' is now unlocked.)rL   r   )r   r&   r   r(   r   r4   r*   r5   r"   r#   r   r   r$   rD   r   ZassertNotContainsr   r   r   r1   r2   r+   r   r   r   Ú#test_unlock_post_with_good_redirectÚ   s2    

ý ÿ ÿþz/TestLocking.test_unlock_post_with_good_redirectc                 C   sœ   d| j _| j| j _t ¡ | j _| j  ¡  | j 	t
d| j jfdddi¡}|  |t
d| jjfd¡ tjj| j jd}|  |j¡ |  |j¡ |  |j¡ d S )NTrF   r   r7   r:   r    r   rG   r+   r   r   r   Ú"test_unlock_post_with_bad_redirectý   s     

þ ÿz.TestLocking.test_unlock_post_with_bad_redirectc                 C   sˆ   d| j _| j| j _t ¡ | j _| j  ¡  | j 	t
ddd¡}|  |jd¡ tjj| j jd}|  |j¡ |  |j| j¡ |  |j¡ d S )NTrF   r<   r   r=   r   )r   r&   r   r(   r   r4   r*   r5   r"   r#   r   r'   r0   r   r   r   r   r%   r)   r+   r   r   r   Útest_unlock_post_bad_page  s    

z%TestLocking.test_unlock_post_bad_pagec                 C   sž   d| j _| j j tjjdd¡ | j  ¡  d| j_	t
 ¡ | j_| j ¡  | j td| jjfd¡}|  |jd¡ tjj| jjd}|  |j	¡ |  |j¡ d S )	NFÚEditors©ÚnameTrF   r   r@   r   )r   rA   ÚgroupsrB   r   r   r   r5   r   r&   r   r4   r*   r"   r#   r   r   r'   r0   r   r%   r)   r+   r   r   r   Ú test_unlock_post_bad_permissions&  s    

ÿz,TestLocking.test_unlock_post_bad_permissionsc                 C   sÔ   d| j _| j j tjjdd¡ | j  ¡  d| j_	| j | j_
t ¡ | j_| j ¡  | j td| jjfddtd| jjfdi¡}|  |td| jjfd¡ tjj| jjd	}|  |j	¡ |  |j
¡ |  |j¡ d S )
NFrP   rQ   TrF   r   r7   r8   r   )r   rA   rS   rB   r   r   r   r5   r   r&   r(   r   r4   r*   r"   r#   r   r   r$   r   r1   r2   r+   r   r   r   Ú.test_unlock_post_own_page_with_bad_permissions=  s&    


þ ÿz:TestLocking.test_unlock_post_own_page_with_bad_permissionsN)Ú__name__Ú
__module__Ú__qualname__r   r.   r3   r6   r9   r;   r>   rC   rE   rH   rI   rJ   rM   rN   rO   rT   rU   r   r   r   r   r      s"   
#r   N)Zdjango.contrib.auth.modelsr   r   Zdjango.testr   Zdjango.urlsr   Zdjango.utilsr   Zdjango.utils.htmlr   Zwagtail.modelsr   Zwagtail.test.testapp.modelsr	   Zwagtail.test.utilsr
   r   r   r   r   r   Ú<module>   s   