o
    hF                     @   s   d dl mZmZ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 d dlmZ G dd deeeZG d	d
 d
eZdS )    )AnonymousUserGroup
Permission)TestCase)GroupPagePermissionPageget_default_page_content_type)PagePermissionPolicy)WagtailTestUtils)PermissionPolicyTestUtilsc                   @   s   e Zd Zdd ZdS )PermissionPolicyTestCasec                 C   s  t  }tjjdd| _| jjtdddd| _tjjdd}t	jj|| jt
jj|d	d
d| _tjjdd}t	jj|| jt
jj|d	d
d| _tjjdd}t	jj|| jt
jj|dd
d| _| ddd| _| ddd| _d| j_| j  | ddd| _| jj| | ddd| _| jj| d| j_| j  | ddd| _| jj| | ddd| _| jj| | ddd| _t | _| jjtdd | jd!d| _| jjtd"d#| jd!d| _| jjtd$d%| jd!d| _| jjtd&d'| jd!d| _ | jjtd(d)dd| _!d S )*N   )idReportsreports)titleslug)instancezRoot editors)namechange_page)content_typecodename)grouppage
permissionzReport editorszReport addersadd_page	superuserzsuperuser@example.compasswordinactivesuperuserzinactivesuperuser@example.comF
rooteditorzrooteditor@example.cominactiverooteditorzinactiverooteditor@example.comreporteditorzreporteditor@example.comreportadderzreportadder@example.comuselessuserzuselessuser@example.comzreporteditor's pagezreporteditor-page)r   r   ownerzreporteditor's reportzreporteditor-reportzreportadder's reportzreportadder-reportzuselessuser's reportzuselessuser-reportzanonymous reportzanonymous-report)"r   r   objectsget	root_page	add_childreports_pager   creater   r   root_edit_permreport_edit_permreport_add_permcreate_superuserr   inactive_superuser	is_activesavecreate_userroot_editorgroupsaddinactive_root_editorreport_editorreport_adderuseless_userr   anonymous_usereditor_pageeditor_reportadder_reportuseless_reportanonymous_report)self	page_typeroot_editors_groupreport_editors_groupreport_adders_group rE   k/var/www/html/ndineBlogger/venv/lib/python3.10/site-packages/wagtail/tests/test_page_permission_policies.pysetUp   s   	

				zPermissionPolicyTestCase.setUpN)__name__
__module____qualname__rG   rE   rE   rE   rF   r   
   s    r   c                       s|   e Zd Z f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  ZS )TestPagePermissionPolicyc                    s   t    t | _d S N)superrG   r	   policyr@   	__class__rE   rF   rG      s   
zTestPagePermissionPolicy.setUpc                 C   s   |  | j| ji  |  | j| ji  |  | j| ji  |  | j| ji  |  | j| ji  |  | j| j| j	h |  | j| j
| jh |  | j| j| jh d S rL   )assertResultSetEqualrN   get_cached_permissions_for_userr   r/   r6   r9   r:   r3   r+   r7   r,   r8   r-   rO   rE   rE   rF   "_test_get_all_permissions_for_user   s@   z;TestPagePermissionPolicy._test_get_all_permissions_for_userc                 C   s@   |    | d |    W d    d S 1 sw   Y  d S )Nr   )rT   assertNumQueriesrO   rE   rE   rF   $test_get_cached_permissions_for_user   s   
"z=TestPagePermissionPolicy.test_get_cached_permissions_for_userc                 C   s   |  | jddddf| jddddf| jddddf| jddddf| jddddf| jddddf| jddddf| jddddfgg d d S )NTF)r5   changedelete
frobnicate)	assertUserPermissionMatrixr   r/   r3   r6   r7   r8   r9   r:   rO   rE   rE   rF   test_user_has_permission   s   
z1TestPagePermissionPolicy.test_user_has_permissionc                 C   s   |  | j| jddg | | j| jddg |  | j| jddg |  | j| jddg | | j| jddg |  | j| jdg d S )Nr5   rW   )	
assertTruerN   user_has_any_permissionr   assertFalser/   r7   r8   r:   rO   rE   rE   rF   test_user_has_any_permission   s(   
z5TestPagePermissionPolicy.test_user_has_any_permissionc                 C   s   | j ddg}| || j| j| j| jg | j ddg}| || j| jg | j ddg}| || j| j| j| jg d S )Nr5   rW   rY   )rN   users_with_any_permissionrR   r   r3   r7   r8   )r@   #users_with_add_or_change_permission'users_with_add_or_frobnicate_permission(users_with_edit_or_frobnicate_permissionrE   rE   rF   test_users_with_any_permission   s<   
	z7TestPagePermissionPolicy.test_users_with_any_permissionc                 C   sH   | j d}| || j| j| j| jg | j d}| || jg d S )NrW   rY   )rN   users_with_permissionrR   r   r3   r7   r8   )r@   users_with_change_permissionusers_with_custom_permissionrE   rE   rF   test_users_with_permission  s   
z3TestPagePermissionPolicy.test_users_with_permissionc                 C   s   |  | j| jdddf| jdddf| jdddf| jdddf| jdddf| jdddf| jdddf| j	dddfgg d |  | j
| jdddf| jdddf| jdddf| jdddf| jdddf| jdddf| jdddf| j	dddfgg d d S )NTF)rW   rX   rY   )"assertUserInstancePermissionMatrixr;   r   r/   r3   r6   r7   r8   r9   r:   r>   rO   rE   rE   rF   %test_user_has_permission_for_instance  s4   

z>TestPagePermissionPolicy.test_user_has_permission_for_instancec                 C   s|   |  | j| jddg| j | | j| jddg| j |  | j| jddg| j | | j| j	ddg| j d S NrW   rX   )
r\   rN   $user_has_any_permission_for_instancer7   r>   r^   r;   r8   r=   r:   rO   rE   rE   rF   )test_user_has_any_permission_for_instance=  s(   zBTestPagePermissionPolicy.test_user_has_any_permission_for_instancec              
   C   s   |  | j| jdtj  |  | j| jdg  |  | j| jd| j	| j
| j| j| j| j| jg |  | j| jd| j
| j| j| j| jg |  | j| jdg  |  | j| jdg  d S NrW   )rR   rN   !instances_user_has_permission_forr   r   r%   allr/   r3   r'   r)   r;   r<   r=   r>   r?   r7   r9   r:   rO   rE   rE   rF   &test_instances_user_has_permission_forV  sl   z?TestPagePermissionPolicy.test_instances_user_has_permission_forc              
   C   s  |  | j| jddgtj  |  | j| jddgg  |  | j| jddg| j	| j
| j| j| j| j| jg |  | j| jddg| j
| j| j| j| jg |  | j| jddg| jg |  | j| jddgg  |  | j| jddgg  d S rk   )rR   rN   %instances_user_has_any_permission_forr   r   r%   rp   r/   r3   r'   r)   r;   r<   r=   r>   r?   r7   r8   r9   r:   rO   rE   rE   rF   *test_instances_user_has_any_permission_for  sl   






zCTestPagePermissionPolicy.test_instances_user_has_any_permission_forc                 C   s   |  | jd| j| j| jg |  | jd| j| j| j| j| jg |  | jd| j	| j| j| jg |  | jd| j
| j| j| jg |  | jd| j| j| j| jg d S rn   )rR   rN   "users_with_permission_for_instancer;   r   r3   r=   r7   r8   r<   r>   r?   rO   rE   rE   rF   'test_users_with_permission_for_instance  s4   
z@TestPagePermissionPolicy.test_users_with_permission_for_instancec                 C   s   |  | jddg| j| j| jg |  | jddg| j| j| j| j| jg |  | jddg| j	| j| j| jg |  | jddg| j	| jg d S )NrW   rX   rY   )
rR   rN   &users_with_any_permission_for_instancer;   r   r3   r=   r7   r8   r>   rO   rE   rE   rF   +test_users_with_any_permission_for_instance  s0   




zDTestPagePermissionPolicy.test_users_with_any_permission_for_instance)rH   rI   rJ   rG   rT   rV   r[   r_   rd   rh   rj   rm   rq   rs   ru   rw   __classcell__rE   rE   rP   rF   rK      s    ")#?@rK   N)django.contrib.auth.modelsr   r   r   django.testr   wagtail.modelsr   r   r   !wagtail.permission_policies.pagesr	   wagtail.test.utilsr
   &wagtail.tests.test_permission_policiesr   r   rK   rE   rE   rE   rF   <module>   s     