Ë
    ¸2Úi¨T  ã                   ó$  — d dl Z d dlZd dlZ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 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"  e«       Z# G d„ de«      Z$	 e
jJ                  jM                  e«       e
jJ                  jS                  ee$«        G d„ de«      Z*dejV                  vr e,defi «      Z*e G d„ de«      «       Z- G d„ de«      Z.y# e
jN                  jP                  $ r Y Œww xY w)é    N)ÚVERSIONÚforms)Úsettings)Úadmin)Úget_user_model)ÚContentType)ÚHttpRequest)ÚTestCase)ÚClient)Úreverse)ÚGuardedModelAdmin)Ú	get_perms)Úget_perms_for_model)ÚGroup)ÚskipUnlessTestApp)ÚLogEntryWithGroupc                   ó   — e Zd Zy)ÚContentTypeGuardedAdminN)Ú__name__Ú
__module__Ú__qualname__© ó    úX/var/www/html/acx/venv/lib/python3.12/site-packages/guardian/testapp/tests/test_admin.pyr   r      s   „ Ør   r   c                   óh  — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	 e
j                  edk\  xr d	ej                  j                  d
d«      v d«      d„ «       Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z e
j                  edk\  xr d	ej                  j                  d
d«      v d«      d„ «       Zd„ Zd„ Zd„ Zd„ Zd„ Zy)Ú
AdminTestsc                 óÚ  — t         j                  j                  ddd«      | _        t         j                  j	                  ddd«      | _        t        j                  j                  d¬«      | _        t        «       | _
        t        j                  j                  dd¬	«      | _        | j                  j                  j                  | j                  j                  j                  f| _        y )
Nr   zadmin@example.comÚjoeújoe@example.comÚgroup©ÚnameÚbarzfake-for-guardian-tests)ÚmodelÚ	app_label)ÚUserÚobjectsÚcreate_superuserr   Úcreate_userÚuserr   Úcreater    r   Úclientr   ÚobjÚ_metar%   Ú
model_nameÚobj_info©Úselfs    r   ÚsetUpzAdminTests.setUp%   s¨   € Ü—\‘\×2Ñ2°7Ð<OØ3:ó<ˆŒ
ä—L‘L×,Ñ,¨UÐ4EÀuÓMˆŒ	Ü—]‘]×)Ñ)¨wÐ)Ó7ˆŒ
Ü“hˆŒÜ×&Ñ&×-Ñ-ØÐ#<ð .ó >ˆŒàŸ™Ÿ™×0Ñ0°$·(±(·.±.×2KÑ2KÐKˆ�r   c                 ó8   — | j                   j                  «        y ©N)r,   Úlogoutr1   s    r   ÚtearDownzAdminTests.tearDown/   s   € Ø�‰×ÑÕr   c                 ó>   — | j                   j                  dd¬«       y )Nr   )ÚusernameÚpassword)r,   Úloginr1   s    r   Ú_login_superuserzAdminTests._login_superuser2   s   € Ø�‰×Ñ 7°WÐÕ=r   c                 óô   — | j                  «        t        d| j                  z  d| j                  j                  dœ¬«      }| j
                  j                  |«      }| j                  |j                  d«       y ©Nú#admin:%s_%s_permissions_manage_useriöÿÿÿ©Ú	object_pkÚuser_id©Úkwargsi”  )	r<   r   r0   r*   Úpkr,   ÚgetÚassertEqualÚstatus_code©r2   ÚurlÚresponses      r   Útest_view_manage_wrong_objz%AdminTests.test_view_manage_wrong_obj5   s]   € Ø×ÑÔÜÐ;¸d¿m¹mÑKØ+.¸4¿9¹9¿<¹<ÑHôJˆà—;‘;—?‘? 3Ó'ˆØ×Ñ˜×-Ñ-¨sÕ3r   c                 óB  — | j                  «        t        d| j                  z  | j                  j                  g¬«      }| j
                  j                  |«      }| j                  |j                  d«       | j                  |j                  d   | j                  «       y )Núadmin:%s_%s_permissions©ÚargséÈ   Úobject)
r<   r   r0   r-   rE   r,   rF   rG   rH   ÚcontextrI   s      r   Ú	test_viewzAdminTests.test_view<   sx   € Ø×ÑÔÜÐ/°$·-±-Ñ?Ø ŸH™HŸK™K˜=ô*ˆà—;‘;—?‘? 3Ó'ˆØ×Ñ˜×-Ñ-¨sÔ3Ø×Ñ˜×)Ñ)¨(Ñ3°T·X±XÕ>r   c                 óô   — | j                  «        t        d| j                  z  | j                  j                  ddœ¬«      }| j
                  j                  |«      }| j                  |j                  d«       y r>   )	r<   r   r0   r-   rE   r,   rF   rG   rH   rI   s      r   Útest_view_manage_wrong_userz&AdminTests.test_view_manage_wrong_userD   s]   € Ø×ÑÔÜÐ;¸d¿m¹mÑKØ+/¯8©8¯;©;À3ÑGôIˆà—;‘;—?‘? 3Ó'ˆØ×Ñ˜×-Ñ-¨sÕ3r   c                 óF  — | j                  «        t        d| j                  z  | j                  j                  g¬«      }| j
                  j                  ddœ}| j                  j                  ||d¬«      }| j                  t        |j                  «      d«       | j                  |j                  d   d   d	«       t        d
| j                  z  | j                  j                  | j
                  j                  dœ¬«      }| j                  |j                  d   |«       y )NrN   rO   Úsubmit©r*   Úsubmit_manage_userT©Úfollowé   r   é.  r?   r@   rC   Ú	PATH_INFO)r<   r   r0   r-   rE   r*   r9   r,   ÚpostrG   ÚlenÚredirect_chainÚrequest©r2   rJ   ÚdatarK   Úredirect_urls        r   Útest_view_manage_user_formz%AdminTests.test_view_manage_user_formK   sî   € Ø×ÑÔÜÐ/°$·-±-Ñ?Ø ŸH™HŸK™K˜=ô*ˆàŸ	™	×*Ñ*À(ÑKˆØ—;‘;×#Ñ# C¨°dÐ#Ó;ˆØ×Ñœ˜X×4Ñ4Ó5°qÔ9Ø×Ñ˜×0Ñ0°Ñ3°AÑ6¸Ô<ÜÐDØ#Ÿ}™}ñ -ØCGÇ8Á8Ç;Á;ØAEÇÁÇÁñ6OôPˆð 	×Ñ˜×)Ñ)¨+Ñ6¸ÕEr   )é   r   ÚmysqlÚDATABASE_URLÚ z6Negative ids no longer work in Django 3.0+ with MySQL.c                 ó�  — | j                  «        t        d| j                  z  | j                  j                  g¬«      }t
        j                  j                  dd¬«      | _        | j                  j                  ddœ}| j                  j                  ||d¬	«      }| j                  t        |j                  «      d
«       | j                  |j                  d   d
   d«       t        d| j                  z  | j                  j                  | j                  j                  g¬«      }| j                  |j                  d   |«       y )NrN   rO   Únegative_id_useré&øÿÿ)r9   rE   rX   rY   Tr[   r]   r   r^   r?   r_   )r<   r   r0   r-   rE   r&   r'   r+   r*   r9   r,   r`   rG   ra   rb   rc   rd   s        r   Ú#test_view_manage_negative_user_formz.AdminTests.test_view_manage_negative_user_formX   s  € ð 	×ÑÔÜÐ/°$·-±-Ñ?Ø ŸH™HŸK™K˜=ô*ˆä—L‘L×'Ñ'Ð1CÈÐ'ÓNˆŒ	ØŸ	™	×*Ñ*À(ÑKˆØ—;‘;×#Ñ# C¨°dÐ#Ó;ˆØ×Ñœ˜X×4Ñ4Ó5°qÔ9Ø×Ñ˜×0Ñ0°Ñ3°AÑ6¸Ô<ÜÐDØ#Ÿ}™}ñ -Ø48·H±H·K±KÀÇÁÇÁÐ3NôPˆà×Ñ˜×)Ñ)¨+Ñ6¸ÕEr   c                 óž  — | j                  «        t        d| j                  z  | j                  j                  g¬«      }dddœ}| j
                  j                  ||d¬«      }| j                  t        |j                  «      d«       | j                  |j                  d	«       | j                  d
|j                  d   j                  v «       y )NrN   rO   z
wrong-userrX   rY   Tr[   r   rQ   r*   Ú	user_form©r<   r   r0   r-   rE   r,   r`   rG   ra   rb   rH   Ú
assertTruerS   Úerrors©r2   rJ   re   rK   s       r   Ú%test_view_manage_user_form_wrong_userz0AdminTests.test_view_manage_user_form_wrong_userh   s©   € Ø×ÑÔÜÐ/°$·-±-Ñ?Ø ŸH™HŸK™K˜=ô*ˆà$¸HÑEˆØ—;‘;×#Ñ# C¨°dÐ#Ó;ˆØ×Ñœ˜X×4Ñ4Ó5°qÔ9Ø×Ñ˜×-Ñ-¨sÔ3Ø�‰˜ (×"2Ñ"2°;Ñ"?×"FÑ"FÐFÕGr   c                 óž  — | j                  «        t        d| j                  z  | j                  j                  g¬«      }dddœ}| j
                  j                  ||d¬«      }| j                  t        |j                  «      d«       | j                  |j                  d	«       | j                  d
|j                  d   j                  v «       y )NrN   rO   ú<xss>rX   rY   Tr[   r   rQ   r*   rq   rr   ru   s       r   Ú&test_view_manage_user_form_wrong_fieldz1AdminTests.test_view_manage_user_form_wrong_fieldr   s©   € Ø×ÑÔÜÐ/°$·-±-Ñ?Ø ŸH™HŸK™K˜=ô*ˆà°xÑ@ˆØ—;‘;×#Ñ# C¨°dÐ#Ó;ˆØ×Ñœ˜X×4Ñ4Ó5°qÔ9Ø×Ñ˜×-Ñ-¨sÔ3Ø�‰˜ (×"2Ñ"2°;Ñ"?×"FÑ"FÐFÕGr   c                 óž  — | j                  «        t        d| j                  z  | j                  j                  g¬«      }dddœ}| j
                  j                  ||d¬«      }| j                  t        |j                  «      d«       | j                  |j                  d	«       | j                  d
|j                  d   j                  v «       y )NrN   rO   rk   rX   rY   Tr[   r   rQ   r*   rq   rr   ru   s       r   Ú%test_view_manage_user_form_empty_userz0AdminTests.test_view_manage_user_form_empty_user|   s©   € Ø×ÑÔÜÐ/°$·-±-Ñ?Ø ŸH™HŸK™K˜=ô*ˆà°(Ñ;ˆØ—;‘;×#Ñ# C¨°dÐ#Ó;ˆØ×Ñœ˜X×4Ñ4Ó5°qÔ9Ø×Ñ˜×-Ñ-¨sÔ3Ø�‰˜ (×"2Ñ"2°;Ñ"?×"FÑ"FÐFÕGr   c                 ó‚  — | j                  «        t        d| j                  z  | j                  j                  | j
                  j                  g¬«      }dg}d|i}| j                  j                  ||d¬«      }| j                  |j                  d«       | j                  d|j                  d   j                  v «       y )	Nr?   rO   Úchange_userÚpermissionsTr[   rQ   Úform)r<   r   r0   r-   rE   r*   r,   r`   rG   rH   rs   rS   rt   ©r2   rJ   Úpermsre   rK   s        r   Ú!test_view_manage_user_wrong_permsz,AdminTests.test_view_manage_user_wrong_perms†   s    € Ø×ÑÔÜÐ;¸d¿m¹mÑKØ ŸH™HŸK™K¨¯©¯©Ð6ô8ˆà�ˆØ˜uÐ%ˆØ—;‘;×#Ñ# C¨°dÐ#Ó;ˆØ×Ñ˜×-Ñ-¨sÔ3Ø�‰˜¨×)9Ñ)9¸&Ñ)A×)HÑ)HÐHÕIr   c                 ó~  — | j                  «        t        d| j                  z  | j                  j                  | j
                  j                  g¬«      }| j                  j                  |«      }| j                  |j                  d«       |j                  d   j                  d   j                  D �ch c]  }|d   ’Œ	 }}| j                  t        | j                  «      D �ch c]  }|j                  ’Œ c}|«       d| j                  d   z  d	| j                  d   z  g}d|i}| j                  j                  ||d
¬«      }| j                  t!        |j"                  «      d«       | j                  |j"                  d   d   d«       | j%                  dt'        |j                  d   «      «       | j                  t)        t+        | j
                  | j                  «      «      t)        |«      «       d| j                  d   z  g}d|i}| j                  j                  ||d
¬«      }| j                  t!        |j"                  «      d«       | j                  |j"                  d   d   d«       | j                  t)        t+        | j
                  | j                  «      «      t)        |«      «       y c c}w c c}w )Nr?   rO   rQ   r   r~   r   ú	change_%sr]   ú	delete_%sTr[   r^   Úselected)r<   r   r0   r-   rE   r*   r,   rF   rG   rH   rS   ÚfieldsÚchoicesr   Úcodenamer`   ra   rb   ÚassertInÚstrÚsetr   ©r2   rJ   rK   Úcrˆ   Úpr�   re   s           r   Útest_view_manage_userz AdminTests.test_view_manage_user�   sX  € Ø×ÑÔÜÐ;¸d¿m¹mÑKØ ŸH™HŸK™K¨¯©¯©Ð6ô8ˆà—;‘;—?‘? 3Ó'ˆØ×Ñ˜×-Ñ-¨sÔ3ð  ×'Ñ'¨Ñ/×6Ñ6°}ÑE×MÑMöO˜A�1�Q“4ð Oˆð Oà×ÑÜ!4°T·X±XÓ!>Ö?˜AˆQ�Z‹ZÒ?Øô	
ð ˜tŸ}™}Øñ ñ Ø˜dŸm™m¨AÑ.Ñ.ð0ˆà˜uÐ%ˆØ—;‘;×#Ñ# C¨°dÐ#Ó;ˆØ×Ñœ˜X×4Ñ4Ó5°qÔ9Ø×Ñ˜×0Ñ0°Ñ3°AÑ6¸Ô<Ø�‰�j¤# h×&6Ñ&6°vÑ&>Ó"?Ô@Ø×ÑÜ”	˜$Ÿ)™) T§X¡XÓ.Ó/Ü�‹Jô	
ð ˜tŸ}™}¨QÑ/Ñ/Ð0ˆØ˜uÐ%ˆØ—;‘;×#Ñ# C¨°dÐ#Ó;ˆØ×Ñœ˜X×4Ñ4Ó5°qÔ9Ø×Ñ˜×0Ñ0°Ñ3°AÑ6¸Ô<à×ÑÜ”	˜$Ÿ)™) T§X¡XÓ.Ó/Ü�‹Jõ	
ùò7Oùò @s   Â4J5Ã$J:c                 óD  — | j                  «        t        d| j                  z  | j                  j                  g¬«      }| j
                  j                  ddœ}| j                  j                  ||d¬«      }| j                  t        |j                  «      d«       | j                  |j                  d   d   d	«       t        d
| j                  z  | j                  j                  | j
                  j                  g¬«      }| j                  |j                  d   |«       y )NrN   rO   rX   ©r    Úsubmit_manage_groupTr[   r]   r   r^   ú$admin:%s_%s_permissions_manage_groupr_   )r<   r   r0   r-   rE   r    r"   r,   r`   rG   ra   rb   Úidrc   rd   s        r   Útest_view_manage_group_formz&AdminTests.test_view_manage_group_form·   sæ   € Ø×ÑÔÜÐ/°$·-±-Ñ?Ø ŸH™HŸK™K˜=ô*ˆàŸ™Ÿ™ÀÑJˆØ—;‘;×#Ñ# C¨°dÐ#Ó;ˆØ×Ñœ˜X×4Ñ4Ó5°qÔ9Ø×Ñ˜×0Ñ0°Ñ3°AÑ6¸Ô<ÜÐEØ#Ÿ}™}ñ -Ø48·H±H·K±KÀÇÁÇÁÐ3OôQˆà×Ñ˜×)Ñ)¨+Ñ6¸ÕEr   c                 ó�  — | j                  «        t        d| j                  z  | j                  j                  g¬«      }t
        j                  j                  dd¬«      | _        | j                  j                  ddœ}| j                  j                  ||d¬	«      }| j                  t        |j                  «      d
«       | j                  |j                  d   d
   d«       t        d| j                  z  | j                  j                  | j                  j                  g¬«      }| j                  |j                   d   |«       y )NrN   rO   Úneagive_id_grouprn   )r"   r•   rX   r’   Tr[   r]   r   r^   r”   r_   )r<   r   r0   r-   rE   r   r'   r+   r    r"   r,   r`   rG   ra   rb   r•   rc   rd   s        r   Ú$test_view_manage_negative_group_formz/AdminTests.test_view_manage_negative_group_formÃ   s  € ð 	×ÑÔÜÐ/°$·-±-Ñ?Ø ŸH™HŸK™K˜=ô*ˆä—]‘]×)Ñ)Ð/AÀeÐ)ÓLˆŒ
ØŸ™Ÿ™ÀÑJˆØ—;‘;×#Ñ# C¨°dÐ#Ó;ˆØ×Ñœ˜X×4Ñ4Ó5°qÔ9Ø×Ñ˜×0Ñ0°Ñ3°AÑ6¸Ô<ÜÐEØ#Ÿ}™}ñ -Ø48·H±H·K±KÀÇÁÇÁÐ3OôQˆà×Ñ˜×)Ñ)¨+Ñ6¸ÕEr   c                 óž  — | j                  «        t        d| j                  z  | j                  j                  g¬«      }dddœ}| j
                  j                  ||d¬«      }| j                  t        |j                  «      d«       | j                  |j                  d	«       | j                  d
|j                  d   j                  v «       y )NrN   rO   zwrong-grouprX   r’   Tr[   r   rQ   r    Ú
group_formrr   ru   s       r   Ú'test_view_manage_group_form_wrong_groupz2AdminTests.test_view_manage_group_form_wrong_groupÓ   s©   € Ø×ÑÔÜÐ/°$·-±-Ñ?Ø ŸH™HŸK™K˜=ô*ˆà&¸xÑHˆØ—;‘;×#Ñ# C¨°dÐ#Ó;ˆØ×Ñœ˜X×4Ñ4Ó5°qÔ9Ø×Ñ˜×-Ñ-¨sÔ3Ø�‰˜ 8×#3Ñ#3°LÑ#A×#HÑ#HÐHÕIr   c                 óž  — | j                  «        t        d| j                  z  | j                  j                  g¬«      }dddœ}| j
                  j                  ||d¬«      }| j                  t        |j                  «      d«       | j                  |j                  d	«       | j                  d
|j                  d   j                  v «       y )NrN   rO   rx   rX   r’   Tr[   r   rQ   r    r›   rr   ru   s       r   Ú'test_view_manage_group_form_wrong_fieldz2AdminTests.test_view_manage_group_form_wrong_fieldÝ   s©   € Ø×ÑÔÜÐ/°$·-±-Ñ?Ø ŸH™HŸK™K˜=ô*ˆà ¸ÑBˆØ—;‘;×#Ñ# C¨°dÐ#Ó;ˆØ×Ñœ˜X×4Ñ4Ó5°qÔ9Ø×Ñ˜×-Ñ-¨sÔ3Ø�‰˜ 8×#3Ñ#3°LÑ#A×#HÑ#HÐHÕIr   c                 óž  — | j                  «        t        d| j                  z  | j                  j                  g¬«      }dddœ}| j
                  j                  ||d¬«      }| j                  t        |j                  «      d«       | j                  |j                  d	«       | j                  d
|j                  d   j                  v «       y )NrN   rO   rk   rX   r’   Tr[   r   rQ   r    r›   rr   ru   s       r   Ú'test_view_manage_group_form_empty_groupz2AdminTests.test_view_manage_group_form_empty_groupç   s©   € Ø×ÑÔÜÐ/°$·-±-Ñ?Ø ŸH™HŸK™K˜=ô*ˆà°HÑ=ˆØ—;‘;×#Ñ# C¨°dÐ#Ó;ˆØ×Ñœ˜X×4Ñ4Ó5°qÔ9Ø×Ñ˜×-Ñ-¨sÔ3Ø�‰˜ 8×#3Ñ#3°LÑ#A×#HÑ#HÐHÕIr   c                 ó‚  — | j                  «        t        d| j                  z  | j                  j                  | j
                  j                  g¬«      }dg}d|i}| j                  j                  ||d¬«      }| j                  |j                  d«       | j                  d|j                  d   j                  v «       y )	Nr”   rO   r}   r~   Tr[   rQ   r   )r<   r   r0   r-   rE   r    r•   r,   r`   rG   rH   rs   rS   rt   r€   s        r   Ú"test_view_manage_group_wrong_permsz-AdminTests.test_view_manage_group_wrong_permsñ   s¤   € Ø×ÑÔÜÐ<Ø—m‘mñ$Ø+/¯8©8¯;©;¸¿
¹
¿¹Ð*FôHˆà�ˆØ˜uÐ%ˆØ—;‘;×#Ñ# C¨°dÐ#Ó;ˆØ×Ñ˜×-Ñ-¨sÔ3Ø�‰˜¨×)9Ñ)9¸&Ñ)A×)HÑ)HÐHÕIr   c                 ó.  — | j                  «        t        d| j                  z  | j                  j                  | j
                  j                  g¬«      }| j                  j                  |«      }| j                  |j                  d«       |j                  d   j                  d   j                  D �ch c]  }|d   ’Œ	 }}| j                  t        | j                  «      D �ch c]  }|j                  ’Œ c}|«       d| j                  d   z  d	| j                  d   z  g}d|i}| j                  j!                  ||d
¬«      }| j                  t#        |j$                  «      d«       | j                  |j$                  d   d   d«       | j                  t'        t)        | j
                  | j                  «      «      t'        |«      «       d	| j                  d   z  g}d|i}| j                  j!                  ||d
¬«      }| j                  t#        |j$                  «      d«       | j                  |j$                  d   d   d«       | j                  t'        t)        | j
                  | j                  «      «      t'        |«      «       y c c}w c c}w )Nr”   rO   rQ   r   r~   r   r„   r]   r…   Tr[   r^   )r<   r   r0   r-   rE   r    r•   r,   rF   rG   rH   rS   r‡   rˆ   r   r‰   r`   ra   rb   rŒ   r   r�   s           r   Útest_view_manage_groupz!AdminTests.test_view_manage_groupû   s>  € Ø×ÑÔÜÐ<Ø—m‘mñ$Ø+/¯8©8¯;©;¸¿
¹
¿¹Ð*FôHˆà—;‘;—?‘? 3Ó'ˆØ×Ñ˜×-Ñ-¨sÔ3ð  ×'Ñ'¨Ñ/×6Ñ6°}ÑE×MÑMöO˜A�1�Q“4ð Oˆð Oà×ÑÜ!4°T·X±XÓ!>Ö?˜AˆQ�Z‹ZÒ?Øô	
ð ˜tŸ}™}Øñ ñ Ø˜dŸm™m¨AÑ.Ñ.ð0ˆà˜uÐ%ˆØ—;‘;×#Ñ# C¨°dÐ#Ó;ˆØ×Ñœ˜X×4Ñ4Ó5°qÔ9Ø×Ñ˜×0Ñ0°Ñ3°AÑ6¸Ô<à×ÑÜ”	˜$Ÿ*™* d§h¡hÓ/Ó0Ü�‹Jô	
ð ˜tŸ}™}¨QÑ/Ñ/Ð0ˆØ˜uÐ%ˆØ—;‘;×#Ñ# C¨°dÐ#Ó;ˆØ×Ñœ˜X×4Ñ4Ó5°qÔ9Ø×Ñ˜×0Ñ0°Ñ3°AÑ6¸Ô<à×ÑÜ”	˜$Ÿ*™* d§h¡hÓ/Ó0Ü�‹Jõ	
ùò7Oùò @s   Â4JÃ$JN)r   r   r   r3   r7   r<   rL   rT   rV   rg   ÚunittestÚskipIfÚDJANGO_VERSIONÚosÚenvironrF   ro   rv   ry   r{   r‚   r�   r–   r™   rœ   rž   r    r¢   r¤   r   r   r   r   r   #   sü   „ òLòò>ò4ò?ò4òFð €X‡_�_�^ vÑ-ò CØ §
¡
§¡¨~¸rÓ BÐBØMóOñFóOðFòHòHòHòJò%
òN
Fð €X‡_�_�^ vÑ-ò CØ §
¡
§¡¨~¸rÓ BÐBØMóOñFóOðFòJòJòJòJó%
r   r   zdjango.contrib.adminc                   óV   — e Zd Zdd„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d	„ Z
d
„ Zd„ Zd„ Zd„ Zy)ÚGuardedModelAdminTestsNc                 ó–   — |xs i }t        |xs d«      }|xs t        }t        |t        f|«      } ||t        j
                  «      }|S ©z9
        Returns ``GuardedModelAdmin`` instance.
        ÚGMA©r‹   r&   Útyper   r   Úsite©r2   Úattrsr"   r$   r®   Úgmas         r   Ú_get_gmazGuardedModelAdminTests._get_gma-  óK   € ð ’˜ˆÜ�4’=˜5Ó!ˆØ’œˆÜ�4Ô+Ð-¨uÓ5ˆÙ�%œŸ™Ó$ˆØˆ
r   c                 óp   — ddi}| j                  |¬«      }| j                  |j                  «       d«       y )NÚobj_perms_manage_templateúfoobar.html©r³   )rµ   rs   Úget_obj_perms_manage_template©r2   r³   r´   s      r   Ú#test_obj_perms_manage_template_attrz:GuardedModelAdminTests.test_obj_perms_manage_template_attr8  s3   € Ø,¨mÐ<ˆØ�m‰m %ˆmÓ(ˆØ�‰˜×9Ñ9Ó;¸]ÕKr   c                 óp   — ddi}| j                  |¬«      }| j                  |j                  «       d«       y )NÚobj_perms_manage_user_templater¹   rº   )rµ   rs   Ú"get_obj_perms_manage_user_templater¼   s      r   Ú(test_obj_perms_manage_user_template_attrz?GuardedModelAdminTests.test_obj_perms_manage_user_template_attr=  s7   € Ø1°=ÐAˆØ�m‰m %ˆmÓ(ˆØ�‰Ø×2Ñ2Ó4°mõ	Er   c                 ó¼   — dt         j                  i}| j                  |¬«      }| j                  t	        |j                  d «      t         j                  «      «       y )NÚobj_perms_manage_user_formrº   )r   ÚFormrµ   rs   Ú
issubclassÚget_obj_perms_manage_user_formr¼   s      r   Ú$test_obj_perms_manage_user_form_attrz;GuardedModelAdminTests.test_obj_perms_manage_user_form_attrC  óB   € Ø-¬u¯z©zÐ:ˆØ�m‰m %ˆmÓ(ˆØ�‰œ
 3×#EÑ#EÀdÓ#KÌUÏZÉZÓXÕYr   c                 ó¼   — dt         j                  i}| j                  |¬«      }| j                  t	        |j                  d «      t         j                  «      «       y )NÚobj_perms_user_select_formrº   )r   rÄ   rµ   rs   rÅ   Úget_obj_perms_user_select_formr¼   s      r   Ú$test_obj_perms_user_select_form_attrz;GuardedModelAdminTests.test_obj_perms_user_select_form_attrH  rÈ   r   c                 óp   — ddi}| j                  |¬«      }| j                  |j                  «       d«       y )NÚobj_perms_manage_group_templater¹   rº   )rµ   rs   Ú#get_obj_perms_manage_group_templater¼   s      r   Ú)test_obj_perms_manage_group_template_attrz@GuardedModelAdminTests.test_obj_perms_manage_group_template_attrM  s6   € Ø2°MÐBˆØ�m‰m %ˆmÓ(ˆØ�‰˜×?Ñ?ÓAØ%õ	'r   c                 ó¼   — dt         j                  i}| j                  |¬«      }| j                  t	        |j                  d «      t         j                  «      «       y )NÚobj_perms_manage_group_formrº   )r   rÄ   rµ   rs   rÅ   Úget_obj_perms_manage_group_formr¼   s      r   Ú%test_obj_perms_manage_group_form_attrz<GuardedModelAdminTests.test_obj_perms_manage_group_form_attrS  óB   € Ø.´·
±
Ð;ˆØ�m‰m %ˆmÓ(ˆØ�‰œ
 3×#FÑ#FÀtÓ#LÌeÏjÉjÓYÕZr   c                 ó¼   — dt         j                  i}| j                  |¬«      }| j                  t	        |j                  d «      t         j                  «      «       y )NÚobj_perms_group_select_formrº   )r   rÄ   rµ   rs   rÅ   Úget_obj_perms_group_select_formr¼   s      r   Ú%test_obj_perms_group_select_form_attrz<GuardedModelAdminTests.test_obj_perms_group_select_form_attrX  rÕ   r   c                 óv  — dddœ}| j                  |t        ¬«      }t        j                  j	                  ddd«      }t        j                  j	                  ddd«      }t
        j                  j                  t        «      }t        j                  j                  |||j                  d	d
¬«      }t        j                  j                  |||j                  d	d¬«       t        «       }||_
        |j                  |«      }| j                  |D �	cg c]  }	|	j                  ‘Œ c}	|j                  g«       y c c}	w ©NTr*   )Ú"user_can_access_owned_objects_onlyÚuser_owned_objects_field©r³   r$   r   r   Újaneújane@example.comr]   Úfoo©r*   Úcontent_typeÚ	object_idÚaction_flagÚchange_messager#   )rµ   ÚLogEntryr&   r'   r)   r   Úget_for_modelr+   rE   r	   r*   Úget_querysetrG   )
r2   r³   r´   r   rß   ÚctypeÚ	joe_entryrc   ÚqsÚes
             r   Ú&test_user_can_acces_owned_objects_onlyz=GuardedModelAdminTests.test_user_can_acces_owned_objects_only]  s  € à26Ø(.ñ
ˆð �m‰m %¬xˆmÓ8ˆÜ�l‰l×&Ñ& uÐ.?ÀÓGˆÜ�|‰|×'Ñ'¨Ð0BÀFÓKˆÜ×#Ñ#×1Ñ1´$Ó7ˆÜ×$Ñ$×+Ñ+°À5Ø69·f±fÈ!Ð\að ,ó cˆ	ä×Ñ×Ñ T¸Ø*.¯'©'¸qÐQVð 	 ô 	Xä“-ˆØˆŒØ×Ñ˜gÓ&ˆØ×Ñ¨Ö+ 1˜!Ÿ$›$Ò+¨i¯l©l¨^Õ<ùÒ+s   ÄD6c                 ó°  — dddœ}| j                  |t        ¬«      }t        j                  j	                  ddd«      }t        j                  j                  ddd«      }t        j                  j                  t        «      }t        j                  j                  |||j                  d	d
¬«      }t        j                  j                  |||j                  d	d¬«      }t        «       }||_        |j                  |«      }	| j                  t        |	D �
cg c]  }
|
j                  ‘Œ c}
«      t        |j                  |j                  g«      «       y c c}
w rÛ   )rµ   rç   r&   r'   r(   r)   r   rè   r+   rE   r	   r*   ré   rG   Úsorted)r2   r³   r´   r   rß   rê   rë   Ú
jane_entryrc   rì   rí   s              r   Ú7test_user_can_acces_owned_objects_only_unless_superuserzNGuardedModelAdminTests.test_user_can_acces_owned_objects_only_unless_superusero  s  € à26Ø(.ñ
ˆð �m‰m %¬xˆmÓ8ˆÜ�l‰l×+Ñ+¨EÐ3DÀeÓLˆÜ�|‰|×'Ñ'¨Ð0BÀFÓKˆÜ×#Ñ#×1Ñ1´$Ó7ˆÜ×$Ñ$×+Ñ+°À5Ø69·f±fÈ!Ð\að ,ó cˆ	ä×%Ñ%×,Ñ,°$ÀUØ7;·w±wÈAÐ^cð -ó eˆ
ä“-ˆØˆŒØ×Ñ˜gÓ&ˆØ×Ñœ¨rÖ 2¨! §£Ò 2Ó3Ü §¡¨z¯}©}Ð =Ó>õ	@ùÒ 2s   ÄEc                 óÀ  — dddœ}| j                  |t        ¬«      }t        j                  j	                  ddd«      }t
        j                  j                  d¬«      }|j                  j                  |«       t        j                  j	                  d	d
d	«      }t
        j                  j                  d¬«      }|j                  j                  |«       t        j                  j                  t        «      }t        j                  j                  |||j                  dd¬«       t        j                  j                  |||j                  dd¬«       t        j                  j                  |||j                  dd|¬«      }t        «       }	||	_        |j                  |	«      }
| j                  |
D �cg c]  }|j                  ‘Œ c}|j                  g«       y c c}w )NTr    ©Ú+user_can_access_owned_by_group_objects_onlyÚgroup_owned_objects_fieldrÞ   r   r   ú	joe-groupr!   rß   rà   ú
jane-groupr]   rá   râ   r#   ©r*   rã   rä   rå   ræ   r    )rµ   rç   r&   r'   r)   r   r+   ÚgroupsÚaddr   rè   rE   r	   r*   ré   rG   )r2   r³   r´   r   Ú	joe_grouprß   Ú
jane_grouprê   Újoe_entry_grouprc   rì   rí   s               r   Ú0test_user_can_access_owned_by_group_objects_onlyzGGuardedModelAdminTests.test_user_can_access_owned_by_group_objects_only‚  sˆ  € à;?Ø)0ñ
ˆð �m‰m %¬xˆmÓ8ˆÜ�l‰l×&Ñ& uÐ.?ÀÓGˆÜ—M‘M×(Ñ(¨kÐ(Ó:ˆ	Ø�
‰
�‰�yÔ!Ü�|‰|×'Ñ'¨Ð0BÀFÓKˆÜ—]‘]×)Ñ)¨|Ð)Ó<ˆ
Ø�‰�‰˜
Ô#Ü×#Ñ#×1Ñ1´$Ó7ˆÜ×Ñ×Ñ S°uØ*-¯&©&¸aÐPUð 	 ô 	Wä×Ñ×Ñ T¸Ø*.¯'©'¸qÐQVð 	 ô 	Xä"×*Ñ*×1Ñ1°tÈ%Ø<?¿F¹FÐPQÐbgØ8Að 2ó Cˆô “-ˆØˆŒØ×Ñ˜gÓ&ˆØ×Ñ¨Ö+ 1˜!Ÿ$›$Ò+¨o×.@Ñ.@Ð-AÕBùÒ+s   Æ4Gc           	      ó>  — dddœ}| j                  |t        ¬«      }t        j                  j	                  ddd«      }t
        j                  j                  d¬«      }|j                  j                  |«       t        j                  j                  d	d
d	«      }t
        j                  j                  d¬«      }|j                  j                  |«       t        j                  j                  t        «      }t        j                  j                  |||j                  dd¬«       t        j                  j                  |||j                  dd¬«       t        j                  j                  |||j                  dd|¬«       t        j                  j                  |||j                  dd|¬«       t        «       }||_        |j                  |«      }	| j!                  t#        d„ |	D «       «      t#        t        j                  j%                  dd¬«      «      «       y )NTr    rô   rÞ   r   r   r÷   r!   rß   rà   rø   r]   rá   râ   r#   rù   c              3   ó4   K  — | ]  }|j                   –— Œ y ­wr5   )rE   )Ú.0rí   s     r   ú	<genexpr>zkGuardedModelAdminTests.test_user_can_access_owned_by_group_objects_only_unless_superuser.<locals>.<genexpr>µ  s   è ø€ Ò1¨ §¥Ñ1ùs   ‚rE   )Úflat)rµ   rç   r&   r'   r(   r   r+   rú   rû   r)   r   rè   rE   r	   r*   ré   rG   rð   Úvalues_list)
r2   r³   r´   r   rü   rß   rý   rê   rc   rì   s
             r   ÚAtest_user_can_access_owned_by_group_objects_only_unless_superuserzXGuardedModelAdminTests.test_user_can_access_owned_by_group_objects_only_unless_superuser›  sÁ  € à;?Ø)0ñ
ˆð �m‰m %¬xˆmÓ8ˆÜ�l‰l×+Ñ+¨EÐ3DÀeÓLˆÜ—M‘M×(Ñ(¨kÐ(Ó:ˆ	Ø�
‰
�‰�yÔ!Ü�|‰|×'Ñ'¨Ð0BÀFÓKˆÜ—]‘]×)Ñ)¨|Ð)Ó<ˆ
Ø�‰�‰˜
Ô#Ü×#Ñ#×1Ñ1´$Ó7ˆÜ×Ñ×Ñ S°uØ*-¯&©&¸aÐPUð 	 ô 	Wä×Ñ×Ñ T¸Ø*.¯'©'¸qÐQVð 	 ô 	Xä×Ñ×Ñ T¸Ø*-¯&©&¸aÐPUØ&/ð 	 ô 	1ô 	×Ñ×Ñ S°uØ*-¯&©&¸aÐPUØ&0ð 	 ô 	2ô “-ˆØˆŒØ×Ñ˜gÓ&ˆØ×ÑœÑ1¨bÔ1Ó1Ü¤× 0Ñ 0× <Ñ <¸TÈÐ <Ó MÓNõ	Pr   ©NNN)r   r   r   rµ   r½   rÁ   rÇ   rÌ   rÐ   rÔ   rÙ   rî   rò   rÿ   r  r   r   r   r«   r«   *  sG   „ ó	òLò
EòZò
Zò
'ò[ò
[ò
=ò$@ò&Có2Pr   r«   c                   ój   — e Zd Z ej                  ej
                  «      Zdd„Zd„ Zd„ Z	d„ Z
d„ Zd„ Zy)	ÚGrappelliGuardedModelAdminTestsNc                 ó–   — |xs i }t        |xs d«      }|xs t        }t        |t        f|«      } ||t        j
                  «      }|S r­   r¯   r²   s         r   rµ   z(GrappelliGuardedModelAdminTests._get_gma½  r¶   r   c                 óP   — dgt        t        j                  «      z   t        _        y )NÚ	grappelli)Úlistr   ÚINSTALLED_APPSr1   s    r   r3   z%GrappelliGuardedModelAdminTests.setUpÈ  s   € Ø#. -´$´x×7NÑ7NÓ2OÑ"OŒÕr   c                 ó.   — | j                   t        _        y r5   )Úorg_installed_appsr   r  r1   s    r   r7   z(GrappelliGuardedModelAdminTests.tearDownË  s   € Ø"&×"9Ñ"9ŒÕr   c                 ód   — | j                  «       }| j                  |j                  «       d«       y )Nz6admin/guardian/contrib/grappelli/obj_perms_manage.html)rµ   rG   r»   ©r2   r´   s     r   Ú"test_get_obj_perms_manage_templatezBGrappelliGuardedModelAdminTests.test_get_obj_perms_manage_templateÎ  s*   € Ø�m‰m‹oˆØ×Ñ˜×:Ñ:Ó<ØQõ	Sr   c                 ód   — | j                  «       }| j                  |j                  «       d«       y )Nz;admin/guardian/contrib/grappelli/obj_perms_manage_user.html)rµ   rG   rÀ   r  s     r   Ú'test_get_obj_perms_manage_user_templatezGGrappelliGuardedModelAdminTests.test_get_obj_perms_manage_user_templateÓ  s*   € Ø�m‰m‹oˆØ×Ñ˜×?Ñ?ÓAØVõ	Xr   c                 ód   — | j                  «       }| j                  |j                  «       d«       y )Nz<admin/guardian/contrib/grappelli/obj_perms_manage_group.html)rµ   rG   rÏ   r  s     r   Ú(test_get_obj_perms_manage_group_templatezHGrappelliGuardedModelAdminTests.test_get_obj_perms_manage_group_templateØ  s*   € Ø�m‰m‹oˆØ×Ñ˜×@Ñ@ÓBØWõ	Yr   r  )r   r   r   Úcopyr   r  r  rµ   r3   r7   r  r  r  r   r   r   r	  r	  ¹  s;   „ à"˜Ÿ™ 8×#:Ñ#:Ó;Ðó	òPò:òSò
Xó
Yr   r	  )/r  r¨   r¥   Údjangor   r§   r   Údjango.confr   Údjango.contribr   Údjango.contrib.authr   Ú"django.contrib.contenttypes.modelsr   Údjango.httpr	   Údjango.testr
   Údjango.test.clientr   Údjango.urlsr   Úguardian.adminr   Úguardian.shortcutsr   r   Úguardian.modelsr   Úguardian.testapp.tests.confr   Úguardian.testapp.modelsr   rç   r&   r   r±   Ú
unregisterÚsitesÚNotRegisteredÚregisterr   r  r°   r«   r	  r   r   r   ú<module>r+     sþ   ðÛ Û 	Û ç 3Ý  Ý  Ý .Ý :Ý #Ý  Ý %Ý å ,Ý (Ý 2Ý !Ý 9Ý AáÓ€ô	Ð/ô 	ð	Ø	‡J�J×Ñ˜+Ô&ð ‡
�
× Ñ �KÐ!8Ô 9ô}
�ô }
ð~  ×!8Ñ!8Ñ8ñ
 �l X K°Ó4€Jð ôKP˜Xó KPó ðKPô\"Y hõ "Yøðw ‡{�{× Ñ ò 	Ùð	ús   Á<C3 Ã3DÄD