ó
    ehÉj#  ã                   óÒ   • S SK rS SKJs  Jr  S SKJr  \" \5      R                  5       R                  R                  S-  S-  rS rS rS rS rS	 rS
 rS rS rS rS rS rS rg)é    N)ÚPathÚsampleszfamilles_exemple.csvc              ƒ   ó|  #   • U R                  SSU0SSU 30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[        R                  " UR                  5      S-   SU0-  n[        [        R                  " U5      5      eS =n=peUR                  5       S   S   n	SU 3U	S.$  GN7f)Nz/api/admin/schoolsÚnameÚAuthorizationzBearer ©ÚjsonÚheaderséÈ   ©ú==©z3%(py2)s
{%(py2)s = %(py0)s.status_code
} == %(py5)sÚr©Úpy0Úpy2Úpy5ú
>assert %(py7)sÚpy7ÚschoolÚid)r   úX-School)ÚpostÚstatus_codeÚ
@pytest_arÚ_call_reprcompareÚ@py_builtinsÚlocalsÚ_should_repr_global_nameÚ	_safereprÚ_format_assertmsgÚtextÚAssertionErrorÚ_format_explanationr	   )
ÚclientÚadmin_tokenr   r   Ú@py_assert1Ú@py_assert4Ú@py_assert3Ú@py_format6Ú@py_format8Úsids
             ÚZD:\Ingenieria\TRABAJOS ONLINE\Projects\11- Photo School\backend\tests\test_admin_import.pyÚ_new_schoolr.      så   é € Ø�k‰kÐ.°f¸d°^Ø#2°g¸k¸]Ð4KÐ"Lð ð N÷ 	N€Aà�=‰=Ð'˜CÐ'˜CÑ×'×'×'Ò'ˆ=×'×'×'×'×'Õ'ˆ1×'×'×'Ñ'ˆ1×'×'Õ'ˆ=×'×'Ó'˜C×'×'×'Ð' §¡×'×'×'×'×'×'Ð'Ø
�&‰&‹(�8Ñ
˜TÑ
"€CØ& { mÐ4À#ÑFÐFò		Nùs   ‚D<žD9ŸDD<c              ƒ   óÞ  #   • [        XS5      I S h  v•N n[        R                  SS9nU R                  SUSS.US9I S h  v•N nUR                  nSoeU:H  ow(       dÛ  [
        R                  " S	U4S
XV45      S[        R                  " 5       ;   d  [
        R                  " U5      (       a  [
        R                  " U5      OS[
        R                  " U5      [
        R                  " U5      S.-  n[
        R                  " UR                  5      S-   SU0-  n	[        [
        R                  " U	5      5      eS =n=pvUR                  5       n
U
S   nSo{U:H  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ÇU
S   nSo{U:H  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ÇU
S   nSo{U:H  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ÇU
S   nSo{U:H  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ÇU R!                  SUS9I S h  v•N nUR                  5       S   n[#        U5      nSnUU:H  of(       Gd  [
        R                  " S	U4SUU45      S [        R                  " 5       ;   d  [
        R                  " ["        5      (       a  [
        R                  " ["        5      OS 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=nnUS$   S%   nS&o{UL 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ÇUS$   S)    Vs1 s H  nUS*   iM
     nnS+S,1o{U:H  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Í GN¡ GNps  snf 7f)-NzImport Ecoleúutf-8©Úencodingú/api/admin/students/importF©Úcsv_textÚreplacer   r   r   r   r   r   r   r   Ústudents_importedé
   ©z%(py1)s == %(py4)s©Úpy1Úpy4úassert %(py6)sÚpy6Úfamilies_createdé   Úsiblings_detectedé   Úemails_importedé   ú/api/admin/families?q=Delacroix©r
   Úfamiliesé   )z0%(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} == %(py6)sÚlen)r   r;   Úpy3r>   úassert %(py8)sÚpy8r   Ú
is_siblingT©Úis)z%(py1)s is %(py4)sÚstudentsÚ
first_nameÚLucasÚEmma)r.   Ú
SAMPLE_CSVÚ	read_textr   r   r   r   r   r   r   r    r!   r"   r#   r$   r	   ÚgetrI   )r%   r&   r
   r5   r   r'   r(   r)   r*   r+   ÚbodyÚ@py_assert0Ú@py_assert2Ú@py_format5Ú@py_format7ÚfamrG   Ú@py_assert5Ú@py_format9Úss                       r-   Ú&test_import_sample_csv_groups_siblingsr`      s©  é € Ü °^ÓD×D€GÜ×#Ñ#¨WÐ#Ð5€HØ�k‰kÐ6È(Ð_dÑ=eÐovˆkÐw×w€AØ�=‰=Ð'˜CÐ'˜CÑ×'×'×'Ò'ˆ=×'×'×'×'×'Õ'ˆ1×'×'×'Ñ'ˆ1×'×'Õ'ˆ=×'×'Ó'˜C×'×'×'Ð' §¡×'×'×'×'×'×'Ð'Ø�6‰6‹8€DàÐ#Ñ$Ð*¨Ð*¨Ñ*×*×*×*Ò*Ð$×*×*Ô*Ð$×*×*Ó*¨×*×*×*×*×*×*Ó*ØÐ"Ñ#Ð( qÐ( qÑ(×(×(×(Ò(Ð#×(×(Ô(Ð#×(×(Ó( q×(×(×(×(×(×(Ó(ØÐ#Ñ$Ð)¨Ð)¨Ñ)×)×)×)Ò)Ð$×)×)Ô)Ð$×)×)Ó)¨×)×)×)×)×)×)Ó)ØÐ!Ñ"Ð' aÐ' aÑ'×'×'×'Ò'Ð"×'×'Ô'Ð"×'×'Ó' a×'×'×'×'×'×'Ó'à—
‘
Ð<Àg�
ÐN×
N€CØ�x‰x‹z˜*Ñ%€HÜˆx‹=Ð˜AÐˆ=˜AÑ×××Óˆ=˜A×××××ÕŒ3×××ÑŒ3×××××Öˆx×××Ñˆx××Õˆ=××Ó˜A××××××ÔØ�A‰;�|Ñ$Ð,¨Ð,¨Ð,×,×,×,Ò,Ð$×,×,Ô,Ð$×,×,Ó,¨×,×,×,×,×,×,Ó,Ø%-¨a¡[°Ò%<Ó=Ò%< ˆAˆlŒOÑ%<ÐRÐ=À'È6ÐARÐRÐARÑR×R×R×RÒRÐ=×R×RÔRÐ=×R×RÓRÐAR×R×R×R×R×R×RÔRò Eâwò Oùò >ùsH   ‚W-’W“.W-ÁW"ÁL3W-Í5W%Í6GW-ÕW(ÕBW-×"W-×%W-×(W-c              ƒ   óî  #   • [        XS5      I S h  v•N nU R                  SS[        R                  SS90US9I S h  v•N   U R	                  SUS9I S h  v•N nUR                  5       S	   n/ oeU:H  ow(       do  [        R                  " S
U4SXV45      [        R                  " U5      [        R                  " U5      S.-  nSSU0-  n	[        [        R                  " U	5      5      eS =n=pvg  NÜ N² Nœ7f)NzScoped Ecoler3   r5   r0   r1   r   rE   rF   rG   r   r9   r:   r=   r>   )r.   r   rT   rU   rV   r	   r   r   r    r#   r$   )
r%   r&   Úadmin_headersr
   ÚotherrX   r)   rY   rZ   r[   s
             r-   Ú,test_import_is_scoped_to_the_selected_schoolrd   !   sÅ   é € Ü °^ÓD×D€GØ
�+‰+Ð2¸*Äj×FZÑFZÐdkÐFZÐFlÐ9mØ%ð ð '÷ 'ð 'à—*‘*Ð>È�*ÐV×V€EØ�:‰:‹<˜
Ñ#Ð) rÐ) rÑ)×)×)×)Ò)Ð#×)×)Ô)Ð#×)×)Ó) r×)×)×)×)×)×)Ô)ñ	 Eñ'áVùs2   ‚C5’C/“+C5¾C1¿C5ÁC3ÁBC5Ã1C5Ã3C5c              ƒ   ó~  #   • [        XS5      I S h  v•N n[        R                  SS9nU R                  SUS9I S h  v•N R	                  5       S   nU R                  SSU0US	9I S h  v•N   U R                  SUS
S.US	9I S h  v•N nUR	                  5       S   nSo‡U:H  o™(       do  [        R                  " SU	4SXx45      [        R                  " U5      [        R                  " U5      S.-  n
SSU
0-  n[        [        R                  " U5      5      eS =n=p˜U R                  SUS9I S h  v•N R	                  5       S   nXÅ:H  oÝ(       dÛ  [        R                  " SU4SXÅ45      S[        R                  " 5       ;   d  [        R                  " U5      (       a  [        R                  " U5      OS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 ng  GN GNô GNË GN² GN
7f)NzReplace Ecoler0   r1   ú/api/admin/familiesrF   Útotalr3   r5   r   Tr4   Úfamilies_totalr@   r   r9   r:   r=   r>   )z%(py0)s == %(py2)sÚafterÚbefore)r   r   zassert %(py4)sr<   )r.   rT   rU   rV   r	   r   r   r   r    r#   r$   r   r   r   )r%   r&   rb   r
   r5   rj   r   rX   r)   rY   rZ   r[   ri   r'   Ú@py_format3s                  r-   Ú+test_replace_only_wipes_the_selected_schoolrl   )   s„  é € Ü °_ÓE×E€GÜ×#Ñ#¨WÐ#Ð5€HØ—J‘JÐ4¸m�JÐL×L×RÑRÓTÐU\Ñ]€FØ
�+‰+Ð2¸*ÀhÐ9OÐY`ˆ+Ð
a×aÐaØ�k‰kÐ6È(Ð_cÑ=dÐnuˆkÐv×v€AØ�6‰6‹8Ð$Ñ%Ð*¨Ð*¨Ñ*×*×*×*Ò*Ð%×*×*Ô*Ð%×*×*Ó*¨×*×*×*×*×*×*Ó*Ø—:‘:Ð3¸]�:ÐK×K×QÑQÓSÐT[Ñ\€EØ‰?×××Òˆ5×××××Õˆ5×××Ñˆ5×××××Ö�F×××Ñ�F××××××Óò FâLÚaÚvâKùsW   ‚H=’H.“*H=½H1¾+H=Á)H4Á*H=ÂH7ÂB*H=Ä0H:Ä1C>H=È1H=È4H=È7H=È:H=c              ƒ   óô  #   • U R                  SSSS.S9I S h  v•N nUR                  nSo2U: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      [        R                  " U5      S
.-  nSSU0-  n[        [        R                  " U5      5      eS =n=pCg  NÜ7f)Nr3   za;b;cFr4   ©r	   é‘  r   r   r   r   úassert %(py7)sr   ©
r   r   r   r   r   r   r   r    r#   r$   )r%   r   r'   r(   r)   r*   r+   s          r-   Ú"test_import_requires_operator_rolerr   4   s–   é € Ø�k‰kÐ6È'Ð^cÑ=dˆkÐe×e€AØ�=‰=Ð˜CÐ˜CÑ×××Òˆ=×××××Õˆ1×××Ñˆ1××Õˆ=××Ó˜C××××××Ôñ 	fùs   ‚C8™C6šCC8c              ƒ   óö  #   • U R                  SSS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=pTg  NÜ7f)Nr3   zcolonne1;colonne2
x;yFr4   r   é�  r   r   r   r   rp   r   rq   )r%   rb   r   r'   r(   r)   r*   r+   s           r-   Ú#test_import_rejects_missing_columnsru   9   s£   é € Ø�k‰kÐ6Ø,DÐQVÑWÐanð ð p÷ 	p€Aà�=‰=Ð˜CÐ˜CÑ×××Òˆ=×××××Õˆ1×××Ñˆ1××Õˆ=××Ó˜C××××××Ôñ	pùs   ‚C9šC7›CC9c              ƒ   óÞ  #   • [        XS5      I S h  v•N nSSSSS.SSS./S	.nU R                  S
X2S9I S h  v•N nU R                  S
X2S9I S h  v•N nUR                  nSovU:H  oˆ(       dÛ  [        R                  " SU4SXg45      S[
        R                  " 5       ;   d  [        R                  " U5      (       a  [        R                  " U5      OS[        R                  " U5      [        R                  " U5      S.-  n	[        R                  " UR                  5      S-   SU	0-  n
[        [        R                  " U
5      5      eS =n=p‡UR                  5       S   UR                  5       S   pË/ okS   oÜS   oíU:g  owo÷(       a  US   nSnUUL nUnU(       Gd
  [        R                  " SU4SXÞ45      [        R                  " U5      [        R                  " U5      S.-  nSSU0-  nUR                  U5        U(       ab  [        R                  " SW4SWW45      [        R                  " U5      [        R                  " U5      S.-  nSS U0-  nUR                  U5        [        R                  " US!5      0 -  nS"S#U0-  n[        [        R                  " U5      5      eS =n=n=n=n=n=n=nnU R!                  S$US%9I S h  v•N R                  5       nUS&   nS'o�U:H  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NP GN- GN N¡7f),NzManual EcoleÚDurandza@b.fru   LÃ©aÚCE1©rQ   Ú
class_nameÚTomÚCM2©Úfamily_nameÚemailrP   rf   r   r   r   r   Úr1r   r   r   ÚfamilyÚcoderM   T)ú!=)z%(py3)s != %(py6)s©rJ   r>   ú%(py8)srL   rN   )z%(py11)s is %(py14)s)Úpy11Úpy14z%(py16)sÚpy16r   úassert %(py19)sÚpy19z/api/admin/families?q=DurandrF   rg   é   r9   r:   r=   r>   )r.   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r	   ÚappendÚ_format_booloprV   )r%   r&   r
   rW   r€   Úr2r'   r(   r)   r*   r+   Úf1Úf2rY   r]   rX   Ú@py_assert10Ú@py_assert13Ú@py_assert12r[   r^   Ú@py_format15Ú@py_format17Ú@py_format18Ú@py_format20ÚlistedrZ   s                              r-   Ú,test_create_family_by_hand_gets_its_own_coder™   ?   s5  é € Ü °^ÓD×D€GØ#¨hØ(.¸eÑDÐUZÐjoÑFpÐqñs€Dà�{‰{Ð0°tˆ{ÐM×	M€BØ�{‰{Ð0°tˆ{ÐM×	M€BØ�>‰>Ð)˜SÐ)˜SÑ ×)×)×)Ò)ˆ>×)×)×)×)×)Õ)ˆ2×)×)×)Ñ)ˆ2×)×)Õ)ˆ>×)×)Ó)˜S×)×)×)Ð) "§'¡'×)×)×)×)×)×)Ð)Ø�W‰W‹Y�xÑ  "§'¡'£)¨HÑ"5ˆÙ@ˆf‰:Ð@˜F™Ð@˜Ñ#×@¨¨<Ñ(8Ð@¸DÐ@Ð(8¸DÐ(@×@×@×@Ö@ˆ:×@×@Ô@ˆ:×@×@Ó@˜×@×@×@×@×@×@×@Ó@Ð(8¸D×@×@Ô@Ð(8×@×@Ó@¸D×@×@×@×@×@×@×@×@×@×@×@×@×@×@Ð@Ø—J‘JÐ=Àw�JÐO×O×UÑUÓW€FØ�'‰?Ð˜aÐ˜aÑ×××Òˆ?××Ôˆ?××Ó˜a××××××Ôò Eò 
NÚ	Mñ PùsE   ‚M-’M"“%M-¸M%¹M-ÁM(ÁI8M-Ë	M+Ë
BM-Í%M-Í(M-Í+M-c              ƒ   óÄ  #   • [        XS5      I S h  v•N nSSSSS./S.nU R                  SX2S	9I S h  v•N oDR                  nS
oeU:H  ow(       d„  [        R                  " SU4SXV4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=pvS/ S.n
U R                  SX¢S	9I S h  v•N oDR                  nSoeU:H  ow(       d„  [        R                  " SU4SXV4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=pvU R                  SUS9I S h  v•N oDR                  nSoeU:H  ow(       d„  [        R                  " SU4SXV4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=pvg  GNC GN$ GNh N°7f)NzManual ValidationÚXÚnopeÚAÚCPry   r}   rf   r   rt   r   ©z3%(py3)s
{%(py3)s = %(py1)s.status_code
} == %(py6)s©r;   rJ   r>   rK   rL   ©r~   rP   i¦  rn   ro   )r.   r   r   r   r   r    r#   r$   )r%   r&   r
   Úbad_mailrX   rY   r]   r(   r[   r^   Úno_studentss              r-   Ú+test_create_family_validates_input_and_roler¤   L   s   é € Ü Ð5HÓI×I€GØ"¨VÐQTÐdhÑBiÐAjÑk€HØ—+‘+Ð3¸(�+ÐT×TÐh×aÑaÐhÐehÐhÐehÑh×h×h×hÒhÐa×h×hÔhÐT×h×hÓhÐa×h×hÓhÐeh×h×h×h×h×h×hÕhØ"%°2Ñ6€KØ—+‘+Ð3¸+�+ÐW×WÐk×dÑdÐkÐhkÐkÐhkÑk×k×k×kÒkÐd×k×kÔkÐW×k×kÓkÐd×k×kÓkÐhk×k×k×k×k×k×kÕkØ—+‘+Ð3¸(�+ÐC×CÐW×PÑPÐWÐTWÐWÐTWÑW×W×W×WÒWÐP×W×WÔWÐC×W×WÓWÐP×W×WÓWÐTW×W×W×W×W×W×WÖWò JâTâWÙCùsF   ‚I ’I“!I ´IµB>I Ã3IÃ4B9I Æ-IÆ.B(I ÉI ÉI ÉI c              ƒ   ód  #   • SS K nSSKJn  [        XS5      I S h  v•N nSSSS./S.nU R	                  S	XTS
9I S h  v•N R                  5       S   nU R                  S	US9I S h  v•N R                  5       S   S   nUS   oˆR                  n	SUS    SUS    S3o©" U
5      o»(       dy  S[        R                  " U5      [        R                  " U	5      [        R                  " U
5      [        R                  " U5      S.-  n[        [        R                  " U5      5      eS =n=n	=p«U R                  US   S-   5      I S h  v•N n/ oíR                  nSo¿U:H  nUnU(       a  UR                  S   nSnUU:H  nUnU(       GdU  [        R                  " SU4SXû4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UR%                  U5        U(       ab  [        R                  " SW4S WW45      [        R                  " U5      [        R                  " U5      S!.-  nS"S#U0-  nUR%                  U5        [        R&                  " US5      0 -  nS$S%U0-  n[        [        R                  " U5      5      eS =n=n=n=n=n=n=nnUR)                  UR+                  UR,                  5      5      nUR.                  nS&o®U
:H  oÿ(       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      [        R                  " U
5      S).-  nS*S+U0-  n[        [        R                  " U5      5      eS =n=púUR0                  S,   S   n[3        U5      nS-o¿U:H  nU(       d×  [        R                  " SU4S.Xû45      S/[        R                   " 5       ;   d  [        R"                  " [2        5      (       a  [        R                  " [2        5      OS/[        R                  " U5      [        R                  " U5      [        R                  " U5      S0.-  nS1SU0-  n[        [        R                  " U5      5      eS =n=n=nnUS   R5                  S2S35      nU R                  U5      I S h  v•N oˆR                  n	S4nU	U:H  oª(       d…  [        R                  " SU
4S5U	U45      [        R                  " U5      [        R                  " U	5      [        R                  " U5      S6.-  nS7S8U0-  n[        [        R                  " U5      5      eS =n=n	=n
nUS   R5                  US   S95      nU R                  U5      I S h  v•N oˆR                  n	S4nU	U:H  oª(       d…  [        R                  " SU
4S5U	U45      [        R                  " U5      [        R                  " U	5      [        R                  " U5      S6.-  nS7S8U0-  n[        [        R                  " U5      5      eS =n=n	=n
ng  GNƒ GNe GN? GNc GN� N¹7f):Nr   )ÚImagezCards EcoleÚ	DelacroixrR   ÚCE2ry   r¡   rf   r   r�   rF   rG   Úcard_urlz/api/media/card/r   Ú/r‚   z.png?zLassert %(py7)s
{%(py7)s = %(py3)s
{%(py3)s = %(py1)s.startswith
}(%(py5)s)
})r;   rJ   r   r   z&lang=esr   úcontent-typez	image/pngr   ©z3%(py4)s
{%(py4)s = %(py2)s.status_code
} == %(py7)sr   ©r   r<   r   ú%(py9)sÚpy9©z%(py12)s == %(py15)s©Úpy12Úpy15ú%(py17)sÚpy17úassert %(py20)sÚpy20)iì  i  )z,%(py2)s
{%(py2)s = %(py0)s.size
} == %(py5)sÚimr   rp   r   Údpiiv  )z0%(py4)s
{%(py4)s = %(py0)s(%(py2)s)
} == %(py7)sÚround)r   r   r<   r   zassert %(py9)szsig=zsig=0i“  rŸ   r    rK   rL   z
ecole-test)ÚioÚPILr¦   r.   r   r	   rV   Ú
startswithr   r    r#   r$   r   r
   r   r   r   r   rŒ   r�   ÚopenÚBytesIOÚcontentÚsizeÚinforº   r6   )r%   r&   r»   r¦   r
   rW   r\   r˜   rX   rY   r(   Ú@py_assert6r+   r   r'   r)   r]   Ú@py_assert11Ú@py_assert14r’   Ú@py_format10Ú@py_format16r–   Ú@py_format19Ú@py_format21r¸   r*   Útamperedr[   r^   rc   s                                  r-   Ú5test_family_card_png_is_signed_scoped_and_print_sizedrË   U   sF  é € ÛÝÜ °]ÓC×C€GØ&ÀGÐ[`Ñ5aÐ4bÑc€DØ—‘Ð2¸�ÐO×O×
UÑ
UÓ
WÐX`Ñ
a€CØ—J‘JÐ4¸g�JÐF×F×LÑLÓNÈzÑZÐ[\Ñ]€FØ�*ÑÐe×(Ñ(ÐeÐ+;¸GÀJÑ<OÐ;PÐPQÐRUÐV\ÑR]ÐQ^Ð^cÐ)dÐeÐ(Ð)dÓeÐeÕe×e×eÐeÐ×e×eÓeÐ(×e×eÓeÐ)d×e×eÓeÐe×e×e×e×e×eÖeà�j‰j˜ 
Ñ+¨jÑ8Ó9×9€AÙL�=‰=ÐL˜CÐL˜CÑ×LÑL A§I¡I¨nÑ$=ÐLÀÐLÐ$=ÀÑ$L×L×L×LÖLˆ=×L×L×L×L×LÕLˆ1×L×L×LÑLˆ1×L×LÕLˆ=×L×LÓL˜C×L×L×L×L×L×L×LÓLÐ$=À×L×LÔLÐ$=×L×LÓLÀ×L×L×L×L×L×L×L×L×L×L×L×L×L×LÐLØ	�‰�B—J‘J˜qŸy™yÓ)Ó	*€BØ�7‰7Ð!�kÐ!�kÑ!×!×!×!Ò!ˆ7×!×!×!×!×!Õ!ˆ2×!×!×!Ñ!ˆ2×!×!Õ!ˆ7×!×!Ó!�k×!×!×!×!×!×!Ó!Ø—‘˜‘ Ñ"Ð*Œ5Ð"Ó#Ð* sÐ* sÑ*×*×*×*Ó*Ð#×*×*×*×*×*Õ*Œ5×*×*×*Ñ*Œ5×*×*Õ*Ð"×*×*Ó*Ð#×*×*Ó* s×*×*×*×*×*×*Ö*à�jÑ!×)Ñ)¨&°'Ó:€HØ—*‘*˜XÓ&×&Ð:×3Ñ3Ð:°sÐ:Ð3°sÑ:×:×:×:Ò:Ð3°s×:×:Ô:Ð&×:×:Ó:Ð3×:×:Ó:°s×:×:×:×:×:×:Ö:Ø�:Ñ×&Ñ& w¨zÑ':¸LÓI€EØ—*‘*˜UÓ#×#Ð7×0Ñ0Ð7°CÐ7Ð0°CÑ7×7×7×7Ò7Ð0°C×7×7Ô7Ð#×7×7Ó7Ð0×7×7Ó7°C×7×7×7×7×7×7×7ò DâOÚFò 	:ò 'á#ùsk   ‚Z0œZ� Z0½Z"¾(Z0Á&Z%Á'CZ0ÅZ(ÅOZ0ÔZ+ÔCZ0×4Z.×5B+Z0Ú"Z0Ú%Z0Ú(Z0Ú+Z0Ú.Z0c              ƒ   óø  #   • SS K nSS Kn[        XS5      I S h  v•N nU R                  SS[        R                  SS90US9I S h  v•N   U R                  SUS	9I S h  v•N n/ oeR                  nS
o‡U:H  o™o©(       a  UR                  S   nSoËU:H  oÝn
U
(       GdT  [        R                  " SU	4SXx4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-  oöR                  U5        U	(       ab  [        R                  " SW4SWW45      [        R                  " U5      [        R                  " U5      S.-  nSSU0-  nUR                  U5        [        R                   " US5      0 -  nSSU0-  n[#        [        R$                  " U5      5      eS =n
=n=n=n	=n=n=pÜUR'                  UR)                  UR*                  5      5      R-                  5       n/ n[/        U5      nSnUU:H  oˆo¨(       a  S U 5       n[1        U5      nUn
U
(       GdÛ  [        R                  " SU4SUU45      S[        R                  " 5       ;   d  [        R                  " [.        5      (       a  [        R                  " [.        5      OS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UR                  U5        U(       a”  S!S"[        R                  " 5       ;   d  [        R                  " [0        5      (       a  [        R                  " [0        5      OS"[        R                  " U5      [        R                  " W5      S#.-  nUR                  U5        [        R                   " US5      0 -  nS$S%U0-  n[#        [        R$                  " U5      5      eS =n
=n=n=n=n=nnU R                  S5      I S h  v•N oªR                  nS&n	UU	:H  nU(       d…  [        R                  " SU4S'UU	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=nn	[        XS+5      I S h  v•N nU R                  SUS	9I S h  v•N oªR                  nS,n	UU	:H  nU(       d…  [        R                  " SU4S'UU	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=nn	g  GNÐ GN§ GN’ GN‡ NÏ N¹7f)-Nr   z	Zip Ecoler3   r5   r0   r1   r   z/api/admin/cards.ziprF   r   r«   zapplication/zipr   r¬   r   r­   r®   r¯   r°   r±   r´   rµ   r¶   r·   r@   c              3   óZ   #   • U  H!  oR                  S 5      =(       a    SU;   v •  M#     g7f)z.pngrª   N)Úendswith)Ú.0Úns     r-   Ú	<genexpr>ÚGtest_cards_zip_groups_by_class_and_requires_operator.<locals>.<genexpr>s   s#   é € Ð"RÊEÀq§:¡:¨fÓ#5×#B¸#À¹(Ô#BÊEùs   ‚)+)z0%(py5)s
{%(py5)s = %(py2)s(%(py3)s)
} == %(py8)srI   Únames)r   rJ   r   rL   ú%(py10)sÚpy10z)%(py16)s
{%(py16)s = %(py12)s(%(py14)s)
}Úall)r²   r‡   rˆ   r‰   rŠ   ro   rŸ   r    rK   rL   zEmpty Zip Ecolei”  )r»   Úzipfiler.   r   rT   rU   rV   r   r
   r   r   r   r   r   r    rŒ   r�   r#   r$   ÚZipFiler¿   rÀ   ÚnamelistrI   rÖ   )r%   r&   r»   r×   r
   r   r'   r)   rÃ   r]   rX   rÄ   rÅ   r’   r+   rÆ   rÇ   r–   rÈ   rÉ   rÓ   r(   Ú@py_assert7Ú@py_assert15r^   Ú@py_format11r•   r—   rY   r[   Úemptys                                  r-   Ú4test_cards_zip_groups_by_class_and_requires_operatorrÞ   j   s„  é € ÛÛÜ °[ÓA×A€GØ
�+‰+Ð2¸*Äj×FZÑFZÐdkÐFZÐFlÐ9mØ%ð ð '÷ 'ð 'à�j‰jÐ/¸ˆjÐA×A€AÙR�=‰=ÐR˜CÐR˜CÑ×R A§I¡I¨nÑ$=ÐRÐARÐRÐARÑ$R×R×R×RÕRˆ=×R×R×R×R×RÕRˆ1×R×R×RÑRˆ1×R×RÕRˆ=×R×RÓR˜C×R×R×R×R×R×R×RÒRÐ$=ÐAR×R×RÔRÐ$=×R×RÓRÐAR×R×R×R×R×R×R×R×R×R×R×R×R×R×RØ�O‰O˜BŸJ™J q§y¡yÓ1Ó2×;Ñ;Ó=€EÙRŒ3ˆu‹:ÐR˜ÐRˆ:˜‰?×RÑ"RÉEÓ"RÐRœsÐ"RÓRÐRÐR×R×R×RÔRˆ:˜×R×R×R×R×RÕRŒ3×R×R×RÑRŒ3×R×R×R×R×RÖRˆu×R×R×RÑRˆu×R×RÕRˆ:×R×RÓR˜×R×R×R×R×R×R×R×R×R×RÑRœs×R×R×RÑRœs×R×RÕRÐ"R×R×RÓRÐR×R×R×R×R×R×R×R×R×R×R×R×R×RØ—*‘*Ð3Ó4×4ÐH×AÑAÐHÀSÐHÐAÀSÑH×H×H×HÓHÐAÀS×H×HÔHÐ4×H×HÓHÐA×H×HÓHÀS×H×H×H×H×H×HÖHÜ˜fÐ3DÓE×E€EØ—*‘*Ð3¸U�*ÐC×CÐW×PÑPÐWÐTWÐWÐPÐTWÑW×W×W×WÓWÐPÐTW×W×WÔWÐC×W×WÓWÐP×W×WÓWÐTW×W×W×W×W×W×W×Wò Bò'âAò 5ÙEÙCùsl   ‚W:šW*›+W:ÁW-ÁW:ÁW0ÁPW:Ñ,W3Ñ-B9W:Ô&W6Ô'W:Ô>W8Ô?B,W:×-W:×0W:×3W:×6W:×8W:c            
      ó"  • SSK Jn   U R                  SS[        S5       Vs/ s H  nSU 3SS.PM     snS	S
SSS9nUR                  nSoC" U5      oU(       d¯  SS[
        R                  " 5       ;   d  [        R                  " U5      (       a  [        R                  " U5      OS[        R                  " U5      [        R                  " U5      [        R                  " U5      S.-  n[        [        R                  " U5      5      eS =n=pEg s  snf )Nr   )Úcard_servicezMAR-P8Y-D23z'Fernandez-Montgomery de la Vega y OrtizrD   u   PrÃ©nomzCM2 Ary   uU   Ã‰cole TrÃ¨s Longue TrÃ¨s Longue TrÃ¨s Longue TrÃ¨s Longue TrÃ¨s Longue TrÃ¨s Longue zhttps://photos.example.com/Ú60Úzz)r‚   r~   rP   Úschool_nameÚ
portal_urlÚ	rgpd_daysÚlangs   ‰PNGzLassert %(py6)s
{%(py6)s = %(py2)s
{%(py2)s = %(py0)s.startswith
}(%(py4)s)
}Úpng)r   r   r<   r>   )Úservicesrà   Úrender_cardÚranger½   r   r   r   r   r    r#   r$   )rà   Úirç   r'   r)   r]   r[   s          r-   ÚAtest_card_renders_long_names_and_unknown_language_without_failingrì   y   sÌ   € Ý%Ø
×
"Ñ
"ØÐ(QÜPUÐVWÔPXÓYÒPXÈ1 7¨1¨# ¸gÔFÑPXÑYØ3Ð@]ÐimÐtxð #ð z€Cð �>‰>Ð%˜*Ð%ˆ>˜*Ó%Ð%Õ%×%×%×%×%×%Ñ%ˆ3×%×%×%Ñ%ˆ3×%×%Õ%ˆ>×%×%Ó%˜*×%×%Ó%Ð%×%×%×%×%×%Õ%ùò Zs   ¡Dc              ƒ   óX	  #   • 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=pTUR                  5       nUS
    V	s/ s H  o™S   PM	     n
n	/ o:S   nSoËU:H  oDoÔ(       a  SoîU
;   oÿnU(       Gd@  [        R                  " SU4SX¼45      [        R                  " U5      [        R                  " U5      S.-  nSSU0-  nUR                  U5        U(       a˜  [        R                  " SW4SWU
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UR                  U5        [        R                  " US5      0 -  nSSU0-  n[        [        R                  " U5      5      eS =n=n=n=n=n=pï/ o8S   n[        U
5      nUU:H  oDoÔ(       a   SoøS   nUU:*  nUS   nUU:*  nU=(       a    UnU(       GdÀ  [        R                  " SU4SUU45      [        R                  " U5      S[        R
                  " 5       ;   d  [        R                  " [        5      (       a  [        R                  " [        5      OSS[        R
                  " 5       ;   d  [        R                  " U
5      (       a  [        R                  " U
5      OS[        R                  " U5      S.-  nS S!U0-  nUR                  U5        U(       ay  [        R                  " S"WW4S#UWW45      [        R                  " U5      [        R                  " U5      [        R                  " U5      S$.-  nS%S&U0-  nUR                  U5        [        R                  " US5      0 -  nS'S(U0-  n[        [        R                  " U5      5      eS =n=n=n=n=n=n=n=n=nng  GNŒs  sn	f 7f))Nz/api/admin/setuprF   r   r   r   r   r   rp   r   Ústepsr   r   rã   Ústripe)z%(py3)s == %(py6)sr„   r…   rL   )Úin)z%(py11)s in %(py13)sÚids)r†   Úpy13z%(py15)sr³   zassert %(py18)sÚpy18rg   Údone)z0%(py3)s == %(py8)s
{%(py8)s = %(py5)s(%(py6)s)
}rI   )rJ   r   r>   rL   rÔ   rÕ   )ú<=rõ   )z%(py13)s <= %(py17)sz%(py17)s <= %(py19)s)rò   rµ   rŠ   z%(py21)sÚpy21zassert %(py24)sÚpy24)rV   r   r   r   r   r   r   r    r#   r$   r	   rŒ   r�   rI   ) r%   rb   r   r'   r(   r)   r*   r+   rW   r_   rñ   rY   r]   rX   r‘   r“   r[   r^   Ú@py_format14rÇ   r•   rÈ   rÚ   Ú@py_assert16rÅ   Ú@py_assert18rÛ   rÜ   r—   Ú@py_format22Ú@py_format23Ú@py_format25s                                    r-   Ú%test_setup_checklist_reports_progressrþ   ‚   s�  é € Ø�j‰jÐ+°]ˆjÐC×C€AØ�=‰=Ð˜CÐ˜CÑ×××Òˆ=×××××Õˆ1×××Ñˆ1××Õˆ=××Ó˜C××××××ÓØ�6‰6‹8€DØ  šMÓ
*šM�qˆTŒ7™M€CÐ
*Ù6ˆq‰6Ð6�]Ð6�]Ñ"×6 xÐ6°3¡×6×6×6Õ6ˆ6×6×6Ô6ˆ6×6×6Ó6�]×6×6×6×6×6×6×6Ó6 x°3×6×6Ô6 x×6×6×6×6×6Ô6°3×6×6×6Ñ6°3×6×6×6×6×6×6×6×6×6×6×6×6×6×6ÙK�‰=ÐKœC ›HÐKˆ=˜HÑ$×K¨ÐK°6©lÐK¨¨lÑ)KÐK¸dÀ7¹mÐK¨l¸mÑ)K×K×K×K×K×Kˆ=˜H×K×KÔKˆ=×K×K×K×K×KÔKœC×K×K×KÑKœC×K×K×K×K×KÖK ×K×K×KÑK ×K×KÕK˜H×K×K×K×K×K×K×KÔK¨¨l¸m×K×KÔK¨×K×KÓK¨l×K×KÓK¸m×K×K×K×K×K×K×K×K×K×K×K×K×K×KÕKò 	Dùò +ùs#   ‚R*–R"—C2R*Ä	R%ÄNR*Ò%R*)Úbuiltinsr   Ú_pytest.assertion.rewriteÚ	assertionÚrewriter   Úpathlibr   Ú__file__ÚresolveÚparentrT   r.   r`   rd   rl   rr   ru   r™   r¤   rË   rÞ   rì   rþ   © ó    r-   Ú<module>r	     sw   ðß  „ Õ á�(‹^×#Ñ#Ó%×,Ñ,×3Ñ3°iÑ?ÐBXÑX€
òGòSò&*òò ò
 ò
 òXò8ò*Xò&óLr  