Ë
    •2Úi°"  ã            	       óî   — 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  ed
¬«       ed„ ¬«       ed„ ¬«       ed¬«       G d„ de«      «       «       «       «       Zy)é    )Ú
PermissionÚUser)ÚContentType)ÚTestCase)Úoverride_settings)Úreverse)Úescape)Úgettext_lazy)Úswitch_user_dropdown)ÚCategoryT)ÚGRAPPELLI_SWITCH_USERc                 ó   — | j                   S ©N)Úis_superuser)Úusers    úR/var/www/html/acx/venv/lib/python3.12/site-packages/grappelli/tests/test_switch.pyú<lambda>r      s   € ¸t×?PÑ?P€ ó    )ÚGRAPPELLI_SWITCH_USER_ORIGINALc                 ó8   — |j                   xr |j                   S r   )Úis_staffr   )Úoriginal_userr   s     r   r   r      s   € ÈDÏMÉMÒLsÐbf×bsÑbsÐ^s€ r   )ÚGRAPPELLI_SWITCH_USER_TARGETzgrappelli.tests.urls)ÚROOT_URLCONFc                   ó0   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚSwitchTestsc                 ó¸  — t         j                  j                  ddd«      | _        t         j                  j                  ddd«      | _        t         j                  j                  ddd	«      | _        d
| j                  _        | j                  j                  «        t         j                  j                  ddd«      | _	        d
| j                  _        | j                  j                  «        t         j                  j                  ddd«      | _
        d| j                  _        | j                  j                  «        t        j                  j                  t        «      }t        j                  j                  |¬«      }| j                  j                   j#                  |«       t%        d«      D ]%  }t        j                  j'                  d|z  ¬«       Œ' y)z/
        Create superusers and editors
        ÚSuperuser001zsuperuser001@example.comÚsuperuser001ÚSuperuser002zsuperuser002@example.comÚsuperuser002Ú	Editor001zeditor001@example.comÚ	editor001TÚ	Editor002zeditor002@example.comÚ	editor002ÚUser001zuser001@example.comÚuser001F)Úcontent_typeéd   zCategory No %s)ÚnameN)r   ÚobjectsÚcreate_superuserÚsuperuser_1Úsuperuser_2Úcreate_userÚeditor_1r   ÚsaveÚeditor_2Úuser_1r   Úget_for_modelr   r   ÚfilterÚuser_permissionsÚsetÚrangeÚcreate)Úselfr(   ÚpermissionsÚis       r   ÚsetUpzSwitchTests.setUp   sc  € ô  Ÿ<™<×8Ñ8¸ÐIcÐesÓtˆÔÜŸ<™<×8Ñ8¸ÐIcÐesÓtˆÔÜŸ™×0Ñ0°Ð>UÐWbÓcˆŒØ!%ˆ�‰ÔØ�‰×ÑÔÜŸ™×0Ñ0°Ð>UÐWbÓcˆŒØ!%ˆ�‰ÔØ�‰×ÑÔÜ—l‘l×.Ñ.¨yÐ:OÐQZÓ[ˆŒØ$ˆ�‰ÔØ�‰×ÑÔô #×*Ñ*×8Ñ8¼ÓBˆÜ ×(Ñ(×/Ñ/¸\Ð/ÓJˆØ�‰×&Ñ&×*Ñ*¨;Ô7ô �s“ò 	AˆAÜ×Ñ×#Ñ#Ð)9¸QÑ)?Ð#Õ@ñ	Ar   c                 ó�  — | j                  t        j                  j                  «       j	                  «       d«       | j                  t
        j                  j                  «       j	                  «       d«       | j                  j                  dd¬«       | j                  j                  t        d«      «      }| j                  |j                  d«       t        |j                  «      }d}| j                  ||«       | j                  j                  d	d
¬«       | j                  j                  t        d«      «      }| j                  |j                  d«       t        |j                  «      }d}| j                  ||«       | j                  j                  dd¬«       | j                  j                  t        d«      «      }| j                  |j                  d«       t        |j                  «      }d}| j                  ||«       | j                  j                  dd¬«       | j                  j                  t        d«      «      }| j                  |j                  d«       | j                  j                  dd¬«       | j                  j                  t        d«      d¬«      }| j                  |j                  d«       y)z"
        Test login users
        é   r)   r   r   ©ÚusernameÚpasswordú#admin:grappelli_category_changelistéÈ   a   <li><a href="/grappelli/switch/user/3/?redirect=/admin/grappelli/category/" class="grp-switch-user-is-target">Editor001</a></li><li><a href="/grappelli/switch/user/4/?redirect=/admin/grappelli/category/" class="grp-switch-user-is-target">Editor002</a></li>r    r!   r"   r#   Ú r$   r%   i“  r&   r'   T©ÚfollowN)ÚassertEqualr   r+   ÚallÚcountr   ÚclientÚloginÚgetr   Ústatus_coder   Úcontext)r:   ÚresponseÚtÚt_cmps       r   Útest_switch_loginzSwitchTests.test_switch_login.   s+  € ð 	×ÑœŸ™×)Ñ)Ó+×1Ñ1Ó3°QÔ7Ø×Ñœ×)Ñ)×-Ñ-Ó/×5Ñ5Ó7¸Ô=à�‰×Ñ >¸NÐÔKØ—;‘;—?‘?¤7Ð+PÓ#QÓRˆØ×Ñ˜×-Ñ-¨sÔ3ô ! ×!1Ñ!1Ó2ˆð SˆØ×Ñ˜˜EÔ"à�‰×Ñ >¸NÐÔKØ—;‘;—?‘?¤7Ð+PÓ#QÓRˆØ×Ñ˜×-Ñ-¨sÔ3ô ! ×!1Ñ!1Ó2ˆð SˆØ×Ñ˜˜EÔ"à�‰×Ñ ;¸ÐÔEØ—;‘;—?‘?¤7Ð+PÓ#QÓRˆØ×Ñ˜×-Ñ-¨sÔ3ô ! ×!1Ñ!1Ó2ˆØˆØ×Ñ˜˜EÔ"à�‰×Ñ ;¸ÐÔEØ—;‘;—?‘?¤7Ð+PÓ#QÓRˆØ×Ñ˜×-Ñ-¨sÔ3à�‰×Ñ 9°yÐÔAØ—;‘;—?‘?¤7Ð+PÓ#QÐZ^�?Ó_ˆØ×Ñ˜×-Ñ-¨sÕ3r   c                 óú  — t         j                  j                  d¬«      }t         j                  j                  d¬«      }| j                  j	                  dd¬«       | j                  j                  t        d|j                  g¬«      ›dt        d	«      ›�d
¬«      }| j                  |j                  d«       | j                  t        |j                  d   «      D �cg c]  }|j                  ‘Œ c}t        d«      g«       | j                  | j                  j                  j                  dd«      d«       | j                  t        | j                  j                  d   «      |j                  «       yc c}w )zÔ
        Test switching from superuser001 to superuser002

        That should not work, because one superuser is not allowed to login
        as another superuser (given the standard grappelli settings)
        r   ©rA   r    r   r@   Úgrp_switch_user©Úargsú
?redirect=rC   TrF   rD   ÚmessagesúPermission denied.r   NÚ_auth_user_id©r   r+   rM   rK   rL   r   ÚidrH   rN   ÚlistrO   ÚmessageÚ_ÚsessionÚintÚpk©r:   r   Útarget_userrP   Úms        r   Ú%test_switch_superuser001_superuser002z1SwitchTests.test_switch_superuser001_superuser002X   s6  € ô Ÿ™×(Ñ(°.Ð(ÓAˆÜ—l‘l×&Ñ&°Ð&Ó?ˆà�‰×Ñ >¸NÐÔKØ—;‘;—?‘?´wÐ?PÐXc×XfÑXfÐWgÖ7hÔjqð  sXô  kYð  $Zð  cg�?ó  hˆØ×Ñ˜×-Ñ-¨sÔ3Ø×Ñ¬T°(×2BÑ2BÀ:Ñ2NÓ-OÖP¨˜!Ÿ)›)ÒPÔSTÐUiÓSjÐRkÔlØ×Ñ˜Ÿ™×,Ñ,×0Ñ0°À$ÓGÈÔNØ×Ñœ˜TŸ[™[×0Ñ0°ÑAÓBÀM×DTÑDTÕUùò Qó   Ã E8c                 óz  — t         j                  j                  d¬«      }t         j                  j                  d¬«      }| j                  j	                  dd¬«       | j                  j                  t        d|j                  g¬«      ›dt        d	«      ›�d
¬«      }| j                  |j                  d«       | j                  | j                  j                  j                  dd«      |j                  |j                  dœ«       | j                  t        | j                  j                  d   «      |j                  «       t        |j                  «      }d}| j                  ||«       | j                  j                  t        d|j                  g¬«      ›dt        d	«      ›�d
¬«      }| j                  |j                  d«       | j                  | j                  j                  j                  dd«      d«       | j                  t        | j                  j                  d   «      |j                  «       y)zZ
        Test switching from superuser001 to Editor001

        That should work.
        r   rU   r"   r   r@   rV   rW   rY   rC   TrF   rD   r   N)r^   rA   r\   a…  <li><a href="/grappelli/switch/user/1/?redirect=/admin/grappelli/category/" class="grp-switch-user-is-original">Superuser001</a></li><li><a href="/grappelli/switch/user/3/?redirect=/admin/grappelli/category/" class="grp-switch-user-is-target">Editor001</a></li><li><a href="/grappelli/switch/user/4/?redirect=/admin/grappelli/category/" class="grp-switch-user-is-target">Editor002</a></li>)r   r+   rM   rK   rL   r   r^   rH   rN   rb   rA   rc   rd   r   rO   )r:   r   rf   rP   rQ   rR   s         r   Ú"test_switch_superuser001_editor001z.SwitchTests.test_switch_superuser001_editor001i   sñ  € ô Ÿ™×(Ñ(°.Ð(ÓAˆÜ—l‘l×&Ñ&°Ð&Ó<ˆà�‰×Ñ >¸NÐÔKØ—;‘;—?‘?´wÐ?PÐXc×XfÑXfÐWgÖ7hÔjqð  sXô  kYð  $Zð  cg�?ó  hˆØ×Ñ˜×-Ñ-¨sÔ3Ø×Ñ˜Ÿ™×,Ñ,×0Ñ0°À$ÓGÐP]×P`ÑP`Ðn{÷  oEñ  oEñ  JFô  	GØ×Ñœ˜TŸ[™[×0Ñ0°ÑAÓBÀKÇNÁNÔSô ! ×!1Ñ!1Ó2ˆð XˆØ×Ñ˜˜EÔ"ð —;‘;—?‘?´wÐ?PÐXe×XhÑXhÐWiÖ7jÔlsð  uZô  m[ð  $\ð  ei�?ó  jˆØ×Ñ˜×-Ñ-¨sÔ3Ø×Ñ˜Ÿ™×,Ñ,×0Ñ0°À$ÓGÈÔNØ×Ñœ˜TŸ[™[×0Ñ0°ÑAÓBÀM×DTÑDTÕUr   c                 ó,  — t         j                  j                  d¬«      }t         j                  j                  d¬«      }| j                  j	                  dd¬«       | j                  j                  t        d|j                  g¬«      ›dt        d	«      ›�d
¬«      }| j                  |j                  d«       | j                  t        |j                  d   «      D �cg c]  }|j                  ‘Œ c}t        d«      dt        |j                  «      dœz  g«       | j                  | j                  j                  j                  dd«      d«       | j                  t        | j                  j                  d   «      |j                   «       yc c}w )zy
        Test switching from superuser001 to user001

        That should not work, because user001 is not found
        r   rU   r&   r   r@   rV   rW   rY   rC   TrF   rD   rZ   z8%(name)s object with primary key %(key)r does not exist.r   )r*   Úkeyr   Nr\   )r   r+   rM   rK   rL   r   r^   rH   rN   r_   rO   r`   ra   r	   rb   rc   rd   re   s        r   Ú test_switch_superuser001_user001z,SwitchTests.test_switch_superuser001_user001„   s}  € ô Ÿ™×(Ñ(°.Ð(ÓAˆÜ—l‘l×&Ñ&°	Ð&Ó:ˆà�‰×Ñ >¸NÐÔKØ—;‘;—?‘?´wÐ?PÐXc×XfÑXfÐWgÖ7hÔjqð  sXô  kYð  $Zð  cg�?ó  hˆØ×Ñ˜×-Ñ-¨sÔ3Ø×Ñ¬T°(×2BÑ2BÀ:Ñ2NÓ-OÖP¨˜!Ÿ)›)ÒPÔSTð  VPó  TQð  ]cô  lrð  s~÷  sAñ  sAó  lBñ  TCñ  TCð  SDô  	EØ×Ñ˜Ÿ™×,Ñ,×0Ñ0°À$ÓGÈÔNØ×Ñœ˜TŸ[™[×0Ñ0°ÑAÓBÀM×DTÑDTÕUùò Qs   Ã Fc                 óú  — t         j                  j                  d¬«      }t         j                  j                  d¬«      }| j                  j	                  dd¬«       | j                  j                  t        d|j                  g¬«      ›dt        d	«      ›�d
¬«      }| j                  |j                  d«       | j                  t        |j                  d   «      D �cg c]  }|j                  ‘Œ c}t        d«      g«       | j                  | j                  j                  j                  dd«      d«       | j                  t        | j                  j                  d   «      |j                  «       yc c}w )z~
        Test switching from editor001 to user001

        That should not work, because editor001 is not a superuser
        r"   rU   r&   r#   r@   rV   rW   rY   rC   TrF   rD   rZ   r[   r   Nr\   r]   re   s        r   Útest_switch_editor001_user001z)SwitchTests.test_switch_editor001_user001”   s6  € ô Ÿ™×(Ñ(°+Ð(Ó>ˆÜ—l‘l×&Ñ&°	Ð&Ó:ˆà�‰×Ñ ;¸ÐÔEØ—;‘;—?‘?´wÐ?PÐXc×XfÑXfÐWgÖ7hÔjqð  sXô  kYð  $Zð  cg�?ó  hˆØ×Ñ˜×-Ñ-¨sÔ3Ø×Ñ¬T°(×2BÑ2BÀ:Ñ2NÓ-OÖP¨˜!Ÿ)›)ÒPÔSTÐUiÓSjÐRkÔlØ×Ñ˜Ÿ™×,Ñ,×0Ñ0°À$ÓGÈÔNØ×Ñœ˜TŸ[™[×0Ñ0°ÑAÓBÀM×DTÑDTÕUùò Qri   N)	Ú__name__Ú
__module__Ú__qualname__r=   rS   rh   rk   rn   rp   © r   r   r   r      s&   „ òAò2(4òTVò"Vò6Vó Vr   r   N)Údjango.contrib.auth.modelsr   r   Ú"django.contrib.contenttypes.modelsr   Údjango.testr   Údjango.test.utilsr   Údjango.urlsr   Údjango.utils.htmlr	   Údjango.utils.translationr
   ra   Úgrappelli.templatetags.grp_tagsr   Úgrappelli.tests.modelsr   r   rt   r   r   ú<module>r~      st   ð÷ 8Ý :Ý  Ý /Ý Ý $Ý 6å @Ý +ñ ¨Ô.ÙÑ2PÔQÙÑ0sÔtÙÐ 6Ô7ôOV�(ó OVó 8ó uó Ró /ñOVr   