o
    ĢÉhŹ¾  ć                   @   sČ   d dl Z d dlmZ d dlmZ d dlmZmZmZ d dl	m
Z
 d dlmZmZmZmZmZmZ d dlmZ d dlmZmZmZmZmZmZmZmZ G d	d
 d
eZG dd deZG dd deZdS )é    N)Śget_user_model)ŚGroup)ŚClientŚTestCaseŚoverride_settings)Śtimezone)ŚGroupApprovalTaskŚGroupPagePermissionŚLocaleŚPageŚWorkflowŚWorkflowTask)ŚPagePermissionPolicy)ŚBusinessSubIndexŚCustomPermissionPageŚCustomPermissionTesterŚ
EventIndexŚ	EventPageŚNoCreatableSubpageTypesPageŚNoSubpageTypesPageŚSingletonPageViaMaxCountc                   @   s  e Zd Zdg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.d/ Zd0d1 Zd2d3 Zd4d5 Zd6d7 Zed8d9d:d; Z d<d= Z!d>d? Z"d@dA Z#dBS )CŚTestPagePermissionś	test.jsonc                 C   sN   t jjdd}tjjdd}|j tjjdd” tjj||j	dd ||fS )NŚtest_workflow©ŚnameŚtest_task_1śEvent moderatorsé   )ŚworkflowŚtaskŚ
sort_order)
r   ŚobjectsŚcreater   ŚgroupsŚaddr   Śgetr   Śtask_ptr)Śselfr   Śtask_1© r*   śc/var/www/html/ndineBlogger/venv/lib/python3.10/site-packages/wagtail/tests/test_page_permissions.pyŚcreate_workflow_and_task    s   ’z+TestPagePermission.create_workflow_and_taskc                 C   s¦  t  jjdd}tjjdd}tddd}|j|d td	d
d}|j|d tjjdd}tjjdd}tjjdd}tjjdd}| 	|”}	| 	|”}
| 	|”}| 	|”}| 	|”}| 	|”}| 	|”}|  
|	 ” ” |  
|
 ” ” |  
| ” ” |  | ” ” |  | ” ” |  | ” ” |  
|	 ” ” |  
|
 ” ” |  
| ” ” |  | ” ” |  | ” ” |  
| ” ” |  
|	 ” ” |  
|
 ” ” |  
| ” ” |  
| ” ” |  | ” ” |  
| ” ” |  
|	 ” ” |  
|
 ” ” |  
| ” ” |  
| ” ” |  
| ” ” |  
|	 ” ” |  
|
 ” ” |  
| ” ” |  
| ” ” |  
| ” ” |  
|	 ” ” |  
|
 ” ” |  
| ” ” |  
| ” ” |  
| ” ” |  
|	 ” ” |  
|
 ” ” |  
| ” ” |  
| ” ” |  
| ” ” |  
|	 ” ” |  
|
 ” ” |  
| ” ” |  
| ” ” |  | ” ” |  
| ” ” |  
| |”” |  | |”” |  
| |”” |  
| |”” |  
| |”” |  | ” ” |  
| |”” d S )Nśeventeditor@example.com©Śemailś/home/©Śurl_pathśNo creatable subpagesśno-creatable-subpages©ŚtitleŚslug©ŚinstanceśNo subpagesśno-subpagesś/home/events/christmas/ś)/home/events/tentative-unpublished-event/ś!/home/events/someone-elses-event/ś-/home/events/businessy-events/board-meetings/©r   r"   r&   r   r   Ś	add_childr   r   r   Śpermissions_for_userŚassertFalseŚcan_add_subpageŚ
assertTrueŚcan_editŚ
can_deleteŚcan_publishŚcan_unpublishŚcan_publish_subpageŚcan_reorder_childrenŚcan_moveŚcan_move_to)r(   Śevent_editorŚhomepageŚno_creatable_subpages_pageŚno_subpages_pageŚchristmas_pageŚunpublished_event_pageŚsomeone_elses_event_pageŚboard_meetings_pageŚhomepage_permsŚno_creatable_subpages_permsŚno_subpages_permsŚchristmas_page_permsŚunpub_permsŚsomeone_elses_event_permsŚboard_meetings_permsr*   r*   r+   Ś"test_nonpublisher_page_permissions)   s¬   ’’’’
’


’
’’’z5TestPagePermission.test_nonpublisher_page_permissionsc                 C   sH  t  jjdd}tjjdd}tddd}|j|d td	d
d}|j|d tjjdd}tjjdd}tjjdd}| 	|”}| 	|”}	| 	|”}
| 	|”}| 	|”}| 	|”}|  
| ” ” |  
|	 ” ” |  
|
 ” ” |  | ” ” |  | ” ” |  
| ” ” |  
|	 ” ” |  
|
 ” ” |  | ” ” |  | ” ” |  
| ” ” |  
|	 ” ” |  
|
 ” ” |  | ” ” |  | ” ” |  
| ” ” |  
|	 ” ” |  
|
 ” ” |  | ” ” |  | ” ” |  
| ” ” |  
|	 ” ” |  | ” ” |  
| ” ” |  
| ” ” |  
|	 ” ” |  
|
 ” ” |  | ” ” |  | ” ” |  
| ” ” |  
|	 ” ” |  
|
 ” ” |  | ” ” |  | ” ” |  
| ” ” |  
|	 ” ” |  
|
 ” ” |  | ” ” |  | ” ” |  | |”” |  | |”” |  
| |”” |  
| |”” |  
| |”” |  | ” ” |  
| |”” d S )Nśeventmoderator@example.comr.   r0   r1   r3   r4   r5   r8   r:   r;   r<   r=   r?   r@   )r(   Śevent_moderatorrO   rP   rQ   rR   rS   rU   rV   rW   rX   rY   rZ   r\   r*   r*   r+   Śtest_publisher_page_permissions   s   ’’’’
’



’’’z2TestPagePermission.test_publisher_page_permissionsc           
      C   sÜ  t  jjdd}tjjddd ”  tjjdd}tjjdd}tjjd	d}tjjd
d}| |”}| |”}| |”}| |”}	|  	| 
” ” |  | 
” ” |  	| ” ” |  |	 ” ” |  |	 ” ” |  	| ” ” |  	| ” ” |  	| ” ” |  | ” ” |  | ” ” |  	| ” ” |  | ” ” |  	| ” ” |  	| ” ” |  | ” ” |  | ” ” |  	| ” ” |  | ” ” |  | ” ” |  	| ” ” |  	| ” ” |  |	 ” ” |  	|	 |”” |  |	 |”” d S )Nr^   r.   r   Śchange_page©Śgroup__nameŚpermission__codenamer0   r1   r<   r=   r>   )r   r"   r&   r	   ŚfilterŚdeleter   r   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   )
r(   r_   rO   rR   rS   Śmoderator_event_pagerV   rY   rZ   Śmoderator_event_permsr*   r*   r+   Ś*test_publish_page_permissions_without_editü   s^   ’’’’


’’z=TestPagePermission.test_publish_page_permissions_without_editc                 C   ó:   t  jjdd}tjjdd}| |”}|  | ” ” d S )Nr^   r.   ś/home/events/r1   )r   r"   r&   r   rB   rC   rG   )r(   r_   Śevents_pageŚevents_permsr*   r*   r+   Ś+test_cannot_bulk_delete_without_permissionsC  s   ’
z>TestPagePermission.test_cannot_bulk_delete_without_permissionsc                 C   sZ   t  jjdd}tjjdd}tjjdd}tjj||dd | |”}|  | 	” ” d S )	Nr^   r.   rk   r1   r   r   Śbulk_delete©ŚgroupŚpageŚpermission_type)
r   r"   r&   r   r   r	   r#   rB   rE   rG   )r(   r_   rl   Śevent_moderators_grouprm   r*   r*   r+   Ś%test_can_bulk_delete_with_permissionsL  s   ’ż
z8TestPagePermission.test_can_bulk_delete_with_permissionsc                 C   sZ   t  jjdd}tjjdd}tjjdd}tjj||dd | |”}|  | 	” ” d	S )
a  
        Having bulk_delete permission is not in itself sufficient to allow deleting pages -
        you need actual edit permission on the pages too.

        In this test the event editor is given bulk_delete permission, but since their
        only other permission is 'add', they cannot delete published pages or pages owned
        by other users, and therefore the bulk deletion cannot happen.
        r-   r.   rk   r1   śEvent editorsr   ro   rp   N)
r   r"   r&   r   r   r	   r#   rB   rC   rG   )r(   rN   rl   Śevent_editors_grouprm   r*   r*   r+   Ś*test_need_delete_permission_to_bulk_delete^  s   	’
z=TestPagePermission.test_need_delete_permission_to_bulk_deletec                 C   sÄ   t  jjdd}tjjdd}tjjdd}| |”}| |”}|  | ” ” |  | ” ” |  | ” ” |  | 	” ” |  | 
” ” |  | ” ” |  | ” ” |  | ” ” |  | |”” d S )Nśinactiveuser@example.comr.   r<   r1   r=   )r   r"   r&   r   rB   rC   rD   rF   rG   rH   rI   rJ   rK   rL   rM   )r(   ŚuserrR   rS   rY   rZ   r*   r*   r+   Ś%test_inactive_user_has_no_permissionst  s    ’

z8TestPagePermission.test_inactive_user_has_no_permissionsc                 C   sŲ  t  jjdd}tjjddj}tddd}|j|d td	d
d}|j|d tjjddj}tjjdd}t	jjdd}| 
|”}| 
|”}	| 
|”}
| 
|”}| 
|”}| 
|”}|  | ” ” |  |	 ” ” |  |
 ” ” |  | ” ” |  | ” ” |  |	 ” ” |  |
 ” ” |  | ” ” |  | ” ” |  |	 ” ” |  |
 ” ” |  | ” ” |  | ” ” |  |	 ” ” |  |
 ” ” |  | ” ” |  | ” ” |  |	 ” ” |  |
 ” ” |  | ” ” |  | ” ” |  | ” ” |  |	 ” ” |  |
 ” ” |  | ” ” |  | ” ” |  |	 ” ” |  |
 ” ” |  | ” ” |  | ” ” |  |	 ” ” |  |
 ” ” |  | ” ” |  | |”” |  | |”” |  | |”” |  | ” ” |  | |”” d S )Nśsuperuser@example.comr.   r0   r1   r3   r4   r5   r8   r:   r;   ś/r=   r?   )r   r"   r&   r   Śspecificr   rA   r   r   r   rB   rE   rD   rC   rF   rG   rH   rI   rJ   rK   rL   rM   )r(   rz   rO   rP   rQ   ŚrootrS   rU   rV   rW   rX   Ś
root_permsrZ   r\   r*   r*   r+   Ś#test_superuser_has_full_permissions  s   ’’’
’



’’’’’z6TestPagePermission.test_superuser_has_full_permissionsc           
      C   sŠ   t  jjdd}tjjddj}tjjddj}tjjdd}|jtdd	|d
d}|jtdd|d
d}| |”}|  	| 
|”” |  | 
|”” |  | 
|”” tjjdd}| |”}	|  |	 
|”” d S )Nr|   r.   r0   r1   r}   Śfr)Ślanguage_codezFrench pagezfrench-page)r6   r7   Ślocaler8   zFrench homepagezfrench-homepagerk   )r   r"   r&   r   r~   r
   r#   rA   rB   rC   rM   rE   )
r(   rz   rO   r   Ś	fr_localeŚfr_pageŚfr_homepageŚfrench_page_permsŚevents_indexŚevents_index_permsr*   r*   r+   Ś$test_cant_move_pages_between_localesę  s2   ż’ż’

z7TestPagePermission.test_cant_move_pages_between_localesc                 C   sV  t  jjdd}tjjdd}tjjdd}tjjdd}tjjdd}t }| |d”}| |d”}| |d	”}	| |d	”}
|  |j	|j
d
 ” ” |  |j	|j
d
 ” ” |  |j	|j
d
 ” ” |  |j	|j
d
 ” ” |  |” |  |	j	|j
d
 ” ” |  |	j	|j
d
 ” ” |  |	j	|j
d
 ” ” |  |	j	|j
d
 ” ” |  |
” d S )Nr-   r.   r0   r1   r<   r=   r>   ŚchangeŚpublish©Śid©r   r"   r&   r   r   r   Ś!instances_user_has_permission_forŚuser_has_permissionrC   re   r   ŚexistsrE   )r(   rN   rO   rR   rS   rT   ŚpolicyŚeditable_pagesŚcan_edit_pagesŚpublishable_pagesŚcan_publish_pagesr*   r*   r+   Ś0test_editable_pages_for_user_with_add_permission	  s@   ’’’’
’’zCTestPagePermission.test_editable_pages_for_user_with_add_permissionc                 C   s¼   t  jjdd}tjjdd}tjjdd}tjjdd}tjjdd}t }| |”}|  |j|j	d 
” ” |  |j|j	d 
” ” |  |j|j	d 
” ” |  |j|j	d 
” ” d S )	Nr-   r.   r<   r1   r=   r>   ś/home/about-us/r   )r   r"   r&   r   r   r   Śexplorable_instancesrE   re   r   r   rC   )r(   rN   rR   rS   rT   Śabout_us_pager   Śexplorable_pagesr*   r*   r+   Śtest_explorable_pages1  s"   ’’
’z(TestPagePermission.test_explorable_pagesc           	      C   s¤   t  jjdd}t }| |” tjjdd}| d|j d”}t |j	 
d””}tjjdd}tjjd	d}d
d | d”D }|  |j|” |  |j|” d S )Nr-   r.   r0   r1   z /admin/api/main/pages/?child_of=z&for_explorer=1zutf-8rk   r   c                 S   s   g | ]}|  d ”qS ©r6   )r&   )Ś.0Śtr*   r*   r+   Ś
<listcomp>X  s    zHTestPagePermission.test_explorable_pages_in_explorer.<locals>.<listcomp>Śitems)r   r"   r&   r   Śforce_loginr   ŚpkŚjsonŚloadsŚcontentŚdecodeŚassertInr6   ŚassertNotIn)	r(   rN   ŚclientrO   Śexplorer_responseŚexplorer_jsonrl   r   Śexplorable_titlesr*   r*   r+   Ś!test_explorable_pages_in_explorerI  s   
’z4TestPagePermission.test_explorable_pages_in_explorerc                 C   s   t  jjdd}t }tjjdd}tjjdd}tjjdd}| |”}|  |j|jd 	” ” |  |j|jd 	” ” |  |j|jd 	” ” d S )Nzcorporateeditor@example.comr.   r   r1   z/home/events/businessy-events/rk   r   )
r   r"   r&   r   r   r   rE   re   r   r   )r(   Ścorporate_editorr   r   Śbusinessy_eventsrl   r   r*   r*   r+   Ś6test_explorable_pages_with_permission_gap_in_hierarchy\  s   ’
zITestPagePermission.test_explorable_pages_with_permission_gap_in_hierarchyc                 C   sV  t  jjdd}tjjdd}tjjdd}tjjdd}tjjdd}t }| |d”}| |d”}| |d	”}	| |d	”}
|  |j	|j
d
 ” ” |  |j	|j
d
 ” ” |  |j	|j
d
 ” ” |  |j	|j
d
 ” ” |  |” |  |	j	|j
d
 ” ” |  |	j	|j
d
 ” ” |  |	j	|j
d
 ” ” |  |	j	|j
d
 ” ” |  |
” d S )Nr^   r.   r0   r1   r<   r=   r>   r   r   r   r   )r(   r_   rO   rR   rS   rT   r   r   r   r   r   r*   r*   r+   Ś1test_editable_pages_for_user_with_edit_permissionm  s@   ’’’’’
’zDTestPagePermission.test_editable_pages_for_user_with_edit_permissionc                 C   óV  t  jjdd}tjjdd}tjjdd}tjjdd}tjjdd}t }| |d”}| |d”}| |d	”}	| |d	”}
|  |j	|j
d
 ” ” |  |j	|j
d
 ” ” |  |j	|j
d
 ” ” |  |j	|j
d
 ” ” |  |” |  |	j	|j
d
 ” ” |  |	j	|j
d
 ” ” |  |	j	|j
d
 ” ” |  |	j	|j
d
 ” ” |  |
” d S )Nry   r.   r0   r1   r<   r=   r>   r   r   r   ©r   r"   r&   r   r   r   r   r   rC   re   r   r   ©r(   rz   rO   rR   rS   rT   r   r   r   r   r   r*   r*   r+   Ś%test_editable_pages_for_inactive_user  ó8   ’’
’’z8TestPagePermission.test_editable_pages_for_inactive_userc                 C   rµ   )Nr|   r.   r0   r1   r<   r=   r>   r   r   r   )r   r"   r&   r   r   r   r   r   rE   re   r   r   r·   r*   r*   r+   Ś!test_editable_pages_for_superuser¹  s4   ’’
’z4TestPagePermission.test_editable_pages_for_superuserc                 C   rµ   )Nśadmin_only_user@example.comr.   r0   r1   r<   r=   r>   r   r   r   r¶   r·   r*   r*   r+   Ś(test_editable_pages_for_non_editing_userŪ  r¹   z;TestPagePermission.test_editable_pages_for_non_editing_userc                 C   sn   t  jjdd}tjjdd}tjjdd}| |”}| |”}|  | ” ” |  | 	” ” |  | 
” ” d S )Nr|   r.   r<   r1   z/home/my-locked-page/)r   r"   r&   r   r   rB   rE   Ścan_lockrC   rI   Ś
can_unlock)r(   rz   rR   Ślocked_pageŚpermsŚlocked_permsr*   r*   r+   Śtest_lock_page_for_superuser’  s   

’z/TestPagePermission.test_lock_page_for_superuserc                 C   óH   t  jjdd}tjjdd}| |”}|  | ” ” |  | ” ” d S ©Nr^   r.   r<   r1   )r   r"   r&   r   rB   rE   r½   r¾   ©r(   rz   rR   rĄ   r*   r*   r+   Śtest_lock_page_for_moderator  ó
   
z/TestPagePermission.test_lock_page_for_moderatorc                 C   s\   t  jjdd}tjjdd}tjjddd ”  | |”}|  | 	” ” |  
| ” ” d S )Nr^   r.   r<   r1   r   Śunlock_pagerb   )r   r"   r&   r   r	   re   rf   rB   rE   r½   rC   r¾   rÅ   r*   r*   r+   Ś6test_lock_page_for_moderator_without_unlock_permission  s   ’
zITestPagePermission.test_lock_page_for_moderator_without_unlock_permissionc                 C   sz   t  jjdd}tjjdd}d|_||_t ” |_| 	”  t
jjddd ”  | |”}|  | ” ” |  | ” ” d S )	Nr^   r.   r<   r1   Tr   rČ   rb   )r   r"   r&   r   ŚlockedŚ	locked_byr   ŚnowŚ	locked_atŚsaver	   re   rf   rB   rE   r½   r¾   rÅ   r*   r*   r+   ŚHtest_lock_page_for_moderator_whole_locked_page_without_unlock_permission#  s   
’
z[TestPagePermission.test_lock_page_for_moderator_whole_locked_page_without_unlock_permissionc                 C   rĆ   )Nr-   r.   r<   r1   ©r   r"   r&   r   rB   rC   r½   r¾   rÅ   r*   r*   r+   Śtest_lock_page_for_editor7  rĒ   z,TestPagePermission.test_lock_page_for_editorc                 C   rĆ   )Nr»   r.   r<   r1   rŠ   rÅ   r*   r*   r+   Ś#test_lock_page_for_non_editing_user@  rĒ   z6TestPagePermission.test_lock_page_for_non_editing_userc                 C   sd   t  jjdd}tjjdd}tjjtjjdd|dd | |”}|  | 	” ” |  
| ” ” d S )	Nr-   r.   r<   r1   rv   r   Ślockrp   )r   r"   r&   r   r	   r#   r   rB   rE   r½   rC   r¾   rÅ   r*   r*   r+   Ś.test_lock_page_for_editor_with_lock_permissionI  s   ż
zATestPagePermission.test_lock_page_for_editor_with_lock_permissionc                 C   rj   rÄ   )r   r"   r&   r   rB   rC   Śpage_lockedrÅ   r*   r*   r+   Ś"test_page_locked_for_unlocked_pageZ  s   
z5TestPagePermission.test_page_locked_for_unlocked_pagec                 C   s   t  jjdd}tjjdd}d|_||_t ” |_| 	”  | 
|”}|  | ” ” t  jjdd}| 
|”}|  | ” ” d S ©Nr^   r.   r<   r1   Tr-   )r   r"   r&   r   rŹ   rĖ   r   rĢ   rĶ   rĪ   rB   rC   rÕ   rE   ©r(   rz   rR   rĄ   Ś
other_userŚother_permsr*   r*   r+   Ś test_page_locked_for_locked_pageb  s   


z3TestPagePermission.test_page_locked_for_locked_pageT)ŚWAGTAILADMIN_GLOBAL_EDIT_LOCKc                 C   s   t  jjdd}tjjdd}d|_||_t ” |_| 	”  | 
|”}|  | ” ” t  jjdd}| 
|”}|  | ” ” d S r×   )r   r"   r&   r   rŹ   rĖ   r   rĢ   rĶ   rĪ   rB   rE   rÕ   rŲ   r*   r*   r+   Ś9test_page_locked_for_locked_page_with_global_lock_enabledw  s   


zLTestPagePermission.test_page_locked_for_locked_page_with_global_lock_enabledc           
      C   sŖ   |   ” \}}t jjdd}t jjdd}t jjdd}tjjdd}| ”  | ||” | |”}|  | 	” ” | |”}|  | 	” ” | |”}	|  
|	 	” ” d S )Nr-   r.   r^   r|   r<   r1   )r,   r   r"   r&   r   Śsave_revisionŚstartrB   rC   rÕ   rE   )
r(   r   r    ŚeditorŚ	moderatorŚ	superuserrR   Śmoderator_permsŚsuperuser_permsŚeditor_permsr*   r*   r+   Śtest_page_locked_in_workflow  s   


z/TestPagePermission.test_page_locked_in_workflowc                 C   s   |   ” \}}t jjdd}t jjdd}tjjdd}| ”  | ||” | |”}|  | 	” ” |  
| ” ” | |”}|  
| 	” ” |  
| ” ” d S )Nr-   r.   r^   r<   r1   )r,   r   r"   r&   r   rŽ   rß   rB   rE   r½   rC   r¾   )r(   r   r    rą   rį   rR   rć   rå   r*   r*   r+   Śtest_page_lock_in_workflow©  s   

z-TestPagePermission.test_page_lock_in_workflowc                 C   s\   t jjdd}tddd}|j|d t jj|jd}t jjdd	}|  | |”t	” d S )
Nr0   r1   z(This page has a custom permission testerz"page-with-custom-permission-testerr5   r8   )r„   r-   r.   )
r   r"   r&   r   rA   r„   r   ŚassertIsInstancerB   r   )r(   rO   r9   rr   rz   r*   r*   r+   Ś"test_custom_permission_tester_page¾  s   žz5TestPagePermission.test_custom_permission_tester_pageN)$Ś__name__Ś
__module__Ś__qualname__Śfixturesr,   r]   r`   ri   rn   ru   rx   r{   r   r   r   r   r°   r³   r“   rø   rŗ   r¼   rĀ   rĘ   rÉ   rĻ   rŃ   rŅ   rŌ   rÖ   rŪ   r   rŻ   rę   rē   ré   r*   r*   r*   r+   r      sD    	odG	^#(($"$			
r   c                   @   s>   e Zd ZdZdgZdd Zdd Zdd Zd	d
 Zdd Z	dS )Ś!TestPagePermissionTesterCanCopyToz(Tests PagePermissionTester.can_copy_to()r   c                 C   sL   t jjdd| _tjjdd| _tjjdd}tdd| _|j	| jd d S )Nr?   r1   r<   r0   zthere can be only oner   r8   )
r   r"   r&   rU   r   Ś
event_pager   r   Śsingleton_pagerA   )r(   rO   r*   r*   r+   ŚsetUpĻ  s   ’z'TestPagePermissionTesterCanCopyTo.setUpc                 C   óz   t  jjdd}| j |”}| j |”}| j |”}|  | | j 	” ”” |  | | j 	” ”” |  | | j 	” ”” d S )Nry   r.   ©
r   r"   r&   rU   rB   rļ   rš   rC   Ścan_copy_toŚ
get_parent©r(   rz   Śboard_meetings_page_permsŚevent_page_permsŚsingleton_page_permsr*   r*   r+   Ś(test_inactive_user_cannot_copy_any_pagesŪ  ó   ’’zJTestPagePermissionTesterCanCopyTo.test_inactive_user_cannot_copy_any_pagesc                 C   rņ   )Nr»   r.   ró   rö   r*   r*   r+   Ś/test_no_permissions_admin_cannot_copy_any_pagesģ  rū   zQTestPagePermissionTesterCanCopyTo.test_no_permissions_admin_cannot_copy_any_pagesc                 C   óz   t  jjdd}| j |”}| j |”}| j |”}|  | | j 	” ”” |  | | j 	” ”” |  
| | j 	” ”” d S )Nr^   r.   ©r   r"   r&   rU   rB   rļ   rš   rE   rō   rõ   rC   rö   r*   r*   r+   Ś1test_event_moderator_cannot_copy_a_singleton_pageż  s   ’’zSTestPagePermissionTesterCanCopyTo.test_event_moderator_cannot_copy_a_singleton_pagec                 C   rż   )Nr|   r.   rž   rö   r*   r*   r+   Ś3test_not_even_a_superuser_can_copy_a_singleton_page  s   ’’zUTestPagePermissionTesterCanCopyTo.test_not_even_a_superuser_can_copy_a_singleton_pageN)
rź   rė   rģ   Ś__doc__rķ   rń   rś   rü   r’   r   r*   r*   r*   r+   rī   Ź  s    rī   c                   @   s   e Zd ZdgZdd ZdS )ŚTestPagePermissionModelr   c                 C   sJ   t  jjdd}tjjdd}tjj|j ” |dd}|  |j	j
d” d S )Nr^   r.   z$/home/secret-plans/steal-underpants/r1   r%   rp   Śadd_page)r   r"   r&   r   r	   r#   r$   ŚfirstŚassertEqualŚ
permissionŚcodename)r(   rz   rr   Śgroup_permissionr*   r*   r+   Ś%test_create_with_permission_type_only(  s   ’z=TestPagePermissionModel.test_create_with_permission_type_onlyN)rź   rė   rģ   rķ   r	  r*   r*   r*   r+   r  #  s    ’r  ) r¦   Śdjango.contrib.authr   Śdjango.contrib.auth.modelsr   Śdjango.testr   r   r   Śdjango.utilsr   Śwagtail.modelsr   r	   r
   r   r   r   Ś!wagtail.permission_policies.pagesr   Śwagtail.test.testapp.modelsr   r   r   r   r   r   r   r   r   rī   r  r*   r*   r*   r+   Ś<module>   s$     (       4Y