U
    |®Ž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 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Ś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 )NZtest_workflow©ŚnameZtest_task_1śEvent moderatorsé   )ŚworkflowŚtaskZ
sort_order)
r   ŚobjectsŚcreater   ŚgroupsŚaddr   Śgetr   Ztask_ptr)Śselfr   Ztask_1© r#   śk/var/www/dating/data/www/fatepal.com/env/lib/python3.8/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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/©Zurl_pathś/home/events/christmas/ś)/home/events/tentative-unpublished-event/ś!/home/events/someone-elses-event/ś-/home/events/businessy-events/board-meetings/©r   r   r!   r   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Śchristmas_pageŚunpublished_event_pageŚsomeone_elses_event_pageŚboard_meetings_pageŚhomepage_permsŚchristmas_page_permsŚunpub_permsZsomeone_elses_event_permsŚboard_meetings_permsr#   r#   r$   Ś"test_nonpublisher_page_permissions'   sx    ’’’


’
’’’z5TestPagePermission.test_nonpublisher_page_permissionsc           
      C   s2  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}| |”}| |”}| |”}| |”}	|  | ” ” |  	| ” ” |  	| ” ” |  | 
” ” |  	| 
” ” |  	| 
” ” |  | ” ” |  	| ” ” |  	| ” ” |  | ” ” |  	| ” ” |  	| ” ” |  | ” ” |  	| ” ” |  | ” ” |  | ” ” |  	| ” ” |  	| ” ” |  | ” ” |  	| ” ” |  	| ” ” |  | ” ” |  	| ” ” |  	| ” ” |  	| |”” |  	| |”” |  | |”” |  | |”” |  | |”” |  	|	 ” ” |  |	 |”” d S )Nśeventmoderator@example.comr'   r)   r*   r+   r,   r.   r/   )
r"   Śevent_moderatorr=   r>   r?   rA   rB   rC   rD   rE   r#   r#   r$   Śtest_publisher_page_permissionsu   sh    ’’’



’’’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 )NrG   r'   r   Zchange_page©Zgroup__nameZpermission__codenamer)   r*   r+   r,   r-   )r   r   r!   r	   ŚfilterŚdeleter   r   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   )
r"   rH   r=   r>   r?   Zmoderator_event_pagerB   rC   rD   Zmoderator_event_permsr#   r#   r$   Ś*test_publish_page_permissions_without_edit¹   s^    ’ ’
’’


’’z=TestPagePermission.test_publish_page_permissions_without_editc                 C   s:   t  jjdd}tjjdd}| |”}|  | ” ” d S )NrG   r'   ś/home/events/r*   )r   r   r!   r   r0   r1   r5   )r"   rH   Śevents_pageŚevents_permsr#   r#   r$   Ś+test_cannot_bulk_delete_without_permissions   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 )	NrG   r'   rN   r*   r   r   Śbulk_delete©ŚgroupŚpageZpermission_type)
r   r   r!   r   r   r	   r   r0   r3   r5   )r"   rH   rO   Zevent_moderators_grouprP   r#   r#   r$   Ś%test_can_bulk_delete_with_permissions	  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'   rN   r*   śEvent editorsr   rR   rS   N)
r   r   r!   r   r   r	   r   r0   r1   r5   )r"   r<   rO   Zevent_editors_grouprP   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+   r*   r,   )r   r   r!   r   r0   r1   r2   r4   r5   r6   r7   r8   r9   r:   r;   )r"   Śuserr>   r?   rC   rD   r#   r#   r$   Ś%test_inactive_user_has_no_permissions1  s     ’

z8TestPagePermission.test_inactive_user_has_no_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}tjjdd}| |”}| |”}| |”}| |”}	|  | 	” ” |  | 	” ” |  | 
” ” |  | 
” ” |  | ” ” |  | ” ” |  | ” ” |  | ” ” |  | ” ” |  | ” ” |  | ” ” |  | ” ” |  | ” ” |  | ” ” |  | ” ” |  | ” ” |  | ” ” |  | |”” |  | |”” |  | |”” |  |	 ” ” |  |	 |”” d S )Nśsuperuser@example.comr'   r)   r*   ś/r,   r.   )r   r   r!   r   Śspecificr   r   r0   r3   r2   r4   r1   r5   r6   r7   r8   r9   r:   r;   )
r"   rZ   r=   Śrootr?   rA   rB   Z
root_permsrD   rE   r#   r#   r$   Ś#test_superuser_has_full_permissionsE  sJ    ’’



’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'   r)   r*   r]   Śfr)Zlanguage_codezFrench pagezfrench-page)ŚtitleŚslugŚlocale©ŚinstancezFrench homepagezfrench-homepagerN   )r   r   r!   r   r^   r
   r   Ś	add_childr0   r1   r;   r3   )
r"   rZ   r=   r_   Z	fr_localeZfr_pageZfr_homepageZfrench_page_permsZevents_indexZevents_index_permsr#   r#   r$   Ś$test_cant_move_pages_between_localesy  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'   r)   r*   r+   r,   r-   ŚchangeŚpublish©Śid©r   r   r!   r   r   r   Ś!instances_user_has_permission_forŚuser_has_permissionr1   rK   rl   Śexistsr3   )r"   r<   r=   r>   r?   r@   ŚpolicyŚeditable_pagesŚcan_edit_pagesŚpublishable_pagesŚcan_publish_pagesr#   r#   r$   Ś0test_editable_pages_for_user_with_add_permission  sD    ’’ ’ ’
’’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+   r*   r,   r-   ś/home/about-us/rk   )r   r   r!   r   r   r   Śexplorable_instancesr3   rK   rl   rp   r1   )r"   r<   r>   r?   r@   Śabout_us_pagerq   Śexplorable_pagesr#   r#   r$   Śtest_explorable_pagesÄ  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'   r)   r*   z /admin/api/main/pages/?child_of=z&for_explorer=1zutf-8rN   rw   c                 S   s   g | ]}|  d ”qS ©rb   )r!   )Ś.0Śtr#   r#   r$   Ś
<listcomp>ė  s     zHTestPagePermission.test_explorable_pages_in_explorer.<locals>.<listcomp>Śitems)r   r   r!   r   Zforce_loginr   ŚpkŚjsonŚloadsŚcontentŚdecodeZassertInrb   ZassertNotIn)	r"   r<   Śclientr=   Zexplorer_responseZexplorer_jsonrO   ry   Zexplorable_titlesr#   r#   r$   Ś!test_explorable_pages_in_explorerÜ  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'   rw   r*   z/home/events/businessy-events/rN   rk   )
r   r   r!   r   r   rx   r3   rK   rl   rp   )r"   Zcorporate_editorrq   ry   Zbusinessy_eventsrO   rz   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 )NrG   r'   r)   r*   r+   r,   r-   ri   rj   rk   rm   )r"   rH   r=   r>   r?   r@   rq   rr   rs   rt   ru   r#   r#   r$   Ś1test_editable_pages_for_user_with_edit_permission   sD    ’’’ ’ ’
’zDTestPagePermission.test_editable_pages_for_user_with_edit_permissionc                 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 )NrY   r'   r)   r*   r+   r,   r-   ri   rj   rk   ©r   r   r!   r   r   r   rn   ro   r1   rK   rl   rp   ©r"   rZ   r=   r>   r?   r@   rq   rr   rs   rt   ru   r#   r#   r$   Ś%test_editable_pages_for_inactive_user(  s8    ’’
’’z8TestPagePermission.test_editable_pages_for_inactive_userc                 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'   r)   r*   r+   r,   r-   ri   rj   rk   )r   r   r!   r   r   r   rn   ro   r3   rK   rl   rp   r   r#   r#   r$   Ś!test_editable_pages_for_superuserL  s4    ’’
’z4TestPagePermission.test_editable_pages_for_superuserc                 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 )Nśadmin_only_user@example.comr'   r)   r*   r+   r,   r-   ri   rj   rk   r   r   r#   r#   r$   Ś(test_editable_pages_for_non_editing_usern  s8    ’’
’’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+   r*   z/home/my-locked-page/)r   r   r!   r   r   r0   r3   Ścan_lockr1   r7   Ś
can_unlock)r"   rZ   r>   Zlocked_pageŚpermsZlocked_permsr#   r#   r$   Śtest_lock_page_for_superuser  s    

’z/TestPagePermission.test_lock_page_for_superuserc                 C   sH   t  jjdd}tjjdd}| |”}|  | ” ” |  | ” ” d S ©NrG   r'   r+   r*   )r   r   r!   r   r0   r3   r   r   ©r"   rZ   r>   r   r#   r#   r$   Śtest_lock_page_for_moderator   s
    
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 )NrG   r'   r+   r*   r   Śunlock_pagerJ   )r   r   r!   r   r	   rK   rL   r0   r3   r   r1   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 )	NrG   r'   r+   r*   Tr   r   rJ   )r   r   r!   r   ŚlockedŚ	locked_byr   ŚnowŚ	locked_atŚsaver	   rK   rL   r0   r3   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   sH   t  jjdd}tjjdd}| |”}|  | ” ” |  | ” ” d S )Nr&   r'   r+   r*   ©r   r   r!   r   r0   r1   r   r   r   r#   r#   r$   Śtest_lock_page_for_editorŹ  s
    
z,TestPagePermission.test_lock_page_for_editorc                 C   sH   t  jjdd}tjjdd}| |”}|  | ” ” |  | ” ” d S )Nr   r'   r+   r*   r   r   r#   r#   r$   Ś#test_lock_page_for_non_editing_userÓ  s
    
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+   r*   rW   r   ŚlockrS   )r   r   r!   r   r	   r   r   r0   r3   r   r1   r   r   r#   r#   r$   Ś.test_lock_page_for_editor_with_lock_permissionÜ  s    ż
zATestPagePermission.test_lock_page_for_editor_with_lock_permissionc                 C   s:   t  jjdd}tjjdd}| |”}|  | ” ” d S r   )r   r   r!   r   r0   r1   Śpage_lockedr   r#   r#   r$   Ś"test_page_locked_for_unlocked_pageķ  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 ©NrG   r'   r+   r*   Tr&   )r   r   r!   r   r   r   r   r   r   r   r0   r1   r¤   r3   ©r"   rZ   r>   r   Z
other_userZother_permsr#   r#   r$   Ś test_page_locked_for_locked_pageõ  s    


z3TestPagePermission.test_page_locked_for_locked_pageT)Z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   r0   r3   r¤   r§   r#   r#   r$   Ś9test_page_locked_for_locked_page_with_global_lock_enabled
  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'   rG   r\   r+   r*   )r%   r   r   r!   r   Śsave_revisionŚstartr0   r1   r¤   r3   )
r"   r   r   ŚeditorŚ	moderatorZ	superuserr>   Śmoderator_permsZ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'   rG   r+   r*   )r%   r   r   r!   r   rŖ   r«   r0   r3   r   r1   r   )r"   r   r   r¬   r­   r>   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 )
Nr)   r*   z(This page has a custom permission testerz"page-with-custom-permission-tester)rb   rc   re   )r   r&   r'   )
r   r   r!   r   rg   r   r   ZassertIsInstancer0   r   )r"   r=   rf   rU   rZ   r#   r#   r$   Ś"test_custom_permission_tester_pageQ  s    žz5TestPagePermission.test_custom_permission_tester_pageN)$Ś__name__Ś
__module__Ś__qualname__Śfixturesr%   rF   rI   rM   rQ   rV   rX   r[   r`   rh   rv   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      sB   	NDG	4#(($"$			
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.   r*   r+   r)   zthere can be only oner|   re   )
r   r   r!   rA   r   Ś
event_pager   r   Śsingleton_pagerg   )r"   r=   r#   r#   r$   ŚsetUpb  s    ’z'TestPagePermissionTesterCanCopyTo.setUpc                 C   sz   t  jjdd}| j |”}| j |”}| j |”}|  | | j 	” ”” |  | | j 	” ”” |  | | j 	” ”” d S )NrY   r'   ©
r   r   r!   rA   r0   rø   r¹   r1   Ścan_copy_toŚ
get_parent©r"   rZ   Zboard_meetings_page_permsZevent_page_permsZsingleton_page_permsr#   r#   r$   Ś(test_inactive_user_cannot_copy_any_pagesn  s    ’’zJTestPagePermissionTesterCanCopyTo.test_inactive_user_cannot_copy_any_pagesc                 C   sz   t  jjdd}| j |”}| j |”}| j |”}|  | | j 	” ”” |  | | j 	” ”” |  | | j 	” ”” d S )Nr   r'   r»   r¾   r#   r#   r$   Ś/test_no_permissions_admin_cannot_copy_any_pages  s    ’’zQTestPagePermissionTesterCanCopyTo.test_no_permissions_admin_cannot_copy_any_pagesc                 C   sz   t  jjdd}| j |”}| j |”}| j |”}|  | | j 	” ”” |  | | j 	” ”” |  
| | j 	” ”” d S )NrG   r'   ©r   r   r!   rA   r0   rø   r¹   r3   r¼   r½   r1   r¾   r#   r#   r$   Ś1test_event_moderator_cannot_copy_a_singleton_page  s    ’’zSTestPagePermissionTesterCanCopyTo.test_event_moderator_cannot_copy_a_singleton_pagec                 C   sz   t  jjdd}| j |”}| j |”}| j |”}|  | | j 	” ”” |  | | j 	” ”” |  
| | j 	” ”” d S )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 )NrG   r'   z$/home/secret-plans/steal-underpants/r*   r    rS   Zadd_page)r   r   r!   r   r	   r   r   ŚfirstZassertEqualZ
permissionŚcodename)r"   rZ   rU   Z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   Zdjango.contrib.authr   Zdjango.contrib.auth.modelsr   Zdjango.testr   r   r   Zdjango.utilsr   Zwagtail.modelsr   r	   r
   r   r   r   Z!wagtail.permission_policies.pagesr   Zwagtail.test.testapp.modelsr   r   r   r   r   r   r   r·   rÅ   r#   r#   r#   r$   Ś<module>   s      
      HY