ó
    Éj+  ã                   óB   • S SK rS SKJs  Jr  S SKJr  S rS r	S r
S rg)é    N)ÚADMIN_PASSWORDc              ƒ   óš  #   • U R                  SSS0S9I S h  v•N   U R                  SS[        0S9I S h  v•N   U R                  SSSU 30S9I S h  v•N nUR                  nS	oCU:H  oU(       dº  [        R
                  " S
U4SX445      S[        R                  " 5       ;   d  [        R                  " U5      (       a  [        R                  " U5      OS[        R                  " U5      [        R                  " U5      S.-  nSSU0-  n[        [        R                  " U5      5      eS =n=pTUR                  5       S    Vs1 s H  oˆS   iM	     n	nSoªU	;   o»(       d¥  [        R
                  " SU4SX©45      [        R                  " U
5      S[        R                  " 5       ;   d  [        R                  " U	5      (       a  [        R                  " U	5      OSS.-  nSSU0-  n[        [        R                  " U5      5      eS =p«SoªU	;   o»(       d¥  [        R
                  " SU4SX©45      [        R                  " U
5      S[        R                  " 5       ;   d  [        R                  " U	5      (       a  [        R                  " U	5      OSS.-  nSSU0-  n[        [        R                  " U5      5      eS =p«g  GN¥ GNŠ GNps  snf 7f)Nz/api/admin/loginÚpasswordzwrong-password-xyz)Újsonz+/api/admin/audit?action=auth.login&limit=50ÚAuthorizationzBearer ©ÚheaderséÈ   ©ú==©z3%(py2)s
{%(py2)s = %(py0)s.status_code
} == %(py5)sÚr©Úpy0Úpy2Úpy5úassert %(py7)sÚpy7ÚeventsÚactionz
auth.login©Úin)z%(py1)s in %(py3)sÚactions)Úpy1Úpy3úassert %(py5)sr   zauth.login_failed)Úpostr   ÚgetÚstatus_codeÚ
@pytest_arÚ_call_reprcompareÚ@py_builtinsÚlocalsÚ_should_repr_global_nameÚ	_safereprÚAssertionErrorÚ_format_explanationr   )ÚclientÚadmin_tokenr   Ú@py_assert1Ú@py_assert4Ú@py_assert3Ú@py_format6Ú@py_format8Úer   Ú@py_assert0Ú@py_assert2Ú@py_format4s                ÚWD:\Ingenieria\TRABAJOS ONLINE\Projects\11- Photo School\backend\tests\test_audit_log.pyÚ*test_login_success_and_failure_are_auditedr4      sÊ  é € Ø
�+‰+Ð(°
Ð<PÐ/Qˆ+Ð
R×RÐRØ
�+‰+Ð(°
¼NÐ/Kˆ+Ð
L×LÐLð �j‰jÐFØ"1°W¸[¸MÐ3JÐ!Kð ð M÷ 	M€Aà�=‰=Ð˜CÐ˜CÑ×××Òˆ=×××××Õˆ1×××Ñˆ1××Õˆ=××Ó˜C××××××ÓØ$%§F¡F£H¨XÒ$6Ó7Ò$6˜q�Œ{Ñ$6€GÐ7ØÐ"˜7Ñ"×"×"×"Ò"ˆ<×"×"Ô"ˆ<×"×"×"×"×"Ô"˜7×"×"×"Ñ"˜7×"×"×"×"×"×"Ó"ØÐ) 'Ñ)×)×)×)Ò)Ð×)×)Ô)Ð×)×)×)×)×)Ô) '×)×)×)Ñ) '×)×)×)×)×)×)Ô)ò SÚLò	Mùò 8ùsE   ‚K˜J=™K¶K ·KÁKÁC0KÅKÅE,KË KËKËKc              ƒ   óD  #   • U R                  SUS9I S h  v•N nUR                  nSoCU:H  oU(       dº  [        R                  " SU4SX445      S[        R
                  " 5       ;   d  [        R                  " U5      (       a  [        R                  " U5      OS[        R                  " U5      [        R                  " U5      S.-  nSS	U0-  n[        [        R                  " U5      5      eS =n=pTS
o‚R                  S   oXU;   o™(       do  [        R                  " SU	4SX…45      [        R                  " U5      [        R                  " U5      S.-  n
SSU
0-  n[        [        R                  " U5      5      eS =n=p•So‚R                  R                  5       S   oXU;   o™(       do  [        R                  " SU	4SX…45      [        R                  " U5      [        R                  " U5      S.-  n
SSU
0-  n[        [        R                  " U5      5      eS =n=p•g  GN7f)Nz/api/admin/audit/export.csvr   r
   r   r   r   r   r   r   ztext/csvzcontent-typer   )z%(py1)s in %(py4)s)r   Úpy4zassert %(py6)sÚpy6r   r   )r   r   r    r!   r"   r#   r$   r%   r&   r'   r	   ÚtextÚ
splitlines)r(   Úadmin_headersr   r*   r+   r,   r-   r.   r0   r1   Ú@py_format5Ú@py_format7s               r3   Útest_audit_export_csvr=      s=  é € Ø�j‰jÐ6ÀˆjÐN×N€AØ�=‰=Ð˜CÐ˜CÑ×××Òˆ=×××××Õˆ1×××Ñˆ1××Õˆ=××Ó˜C××××××ÓØÐ2Ÿ™ >Ñ2Ð2Ð2Ñ2×2×2×2Ò2ˆ:×2×2Ô2ˆ:×2×2Ó2Ð2×2×2×2×2×2×2Ó2ØÐ-—v‘v×(Ñ(Ó*¨1Ñ-Ð-Ð-Ñ-×-×-×-Ò-ˆ8×-×-Ô-ˆ8×-×-Ó-Ð-×-×-×-×-×-×-Ô-ò 	Oùs   ‚H –H—HH c              ƒ   ó†  #   • U R                  S5      I S h  v•N oR                  nSo2U:H  oD(       d„  [        R                  " SU4SX#45      [        R                  " U5      [        R                  " U5      [        R                  " U5      S.-  nSSU0-  n[        [        R                  " U5      5      eS =n=n=pCg  N§7f)Nz/api/admin/auditi‘  r   )z3%(py3)s
{%(py3)s = %(py1)s.status_code
} == %(py6)s)r   r   r7   zassert %(py8)sÚpy8)r   r   r    r!   r%   r&   r'   )r(   r0   r1   Ú@py_assert5r+   r<   Ú@py_format9s          r3   Útest_audit_requires_a_tokenrB      su   é € Ø—*‘*Ð/Ó0×0ÐD×=Ñ=ÐDÀÐDÀÑD×D×D×DÒDÐ=×D×DÔDÐ0×D×DÓDÐ=×D×DÓDÀ×D×D×D×D×D×DÖDÑ0ùs   ‚C—B?˜B(Cc              ƒ   óþ  #   • SSK Jn  UR                  SSSS9  UR                  SSSS9  U R                  SUS	9I S h  v•N nUR                  nS
oTU:H  of(       dº  [
        R                  " SU4SXE45      S[        R                  " 5       ;   d  [
        R                  " U5      (       a  [
        R                  " U5      OS[
        R                  " U5      [
        R                  " U5      S.-  nSSU0-  n[        [
        R                  " U5      5      eS =n=peUR                  5       S    V	s1 s H  o™S   iM	     n
n	S1oºU:H  oD(       d¥  [
        R                  " SU4SX«45      S[        R                  " 5       ;   d  [
        R                  " U
5      (       a  [
        R                  " U
5      OS[
        R                  " U5      S.-  nSSU0-  n[        [
        R                  " U5      5      eS =pKg  GN·s  sn	f 7f)Nr   )Úaudit_serviceztest.markerzautre-ecoleÚinfo)Ú	school_idÚseverityz
ecole-testz#/api/admin/audit?action=test.markerr   r
   r   r   r   r   r   r   r   rF   )z%(py0)s == %(py3)sÚschools)r   r   r   r   )ÚservicesrD   Ú	log_eventr   r   r    r!   r"   r#   r$   r%   r&   r'   r   )r(   Údirector_headersrD   r   r*   r+   r,   r-   r.   r/   rH   r1   r2   s                r3   Ú)test_director_only_sees_own_school_eventsrL      sA  é € Ý&Ø×Ñ˜M°]ÈVÐÑTØ×Ñ˜M°\ÈFÐÑSØ�j‰jÐ>ÐHXˆjÐY×Y€AØ�=‰=Ð˜CÐ˜CÑ×××Òˆ=×××××Õˆ1×××Ñˆ1××Õˆ=××Ó˜C××××××ÓØ'(§v¡v£x°Ò'9Ó:Ò'9 !�Œ~Ñ'9€GÐ:Ø#�nÐ$�nÑ$×$×$×$Ò$ˆ7×$×$×$×$×$Õ$ˆ7×$×$×$Ñ$ˆ7×$×$Õ$�n×$×$×$×$×$×$Ò$ò 	Zùâ:ùs#   ‚<G=¾G5¿C0G=Ä/G8Ä=B9G=Ç8G=)Úbuiltinsr"   Ú_pytest.assertion.rewriteÚ	assertionÚrewriter    Úconftestr   r4   r=   rB   rL   © ó    r3   Ú<module>rT      s"   ðß  „ Õ #ò
*ò.òEó%rS   