
    h                     >   S SK r S SKrS SKrS SKrS SKJr  S SKJrJrJ	r	  \	" 5       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\R.                  R1                  SSS/5      S 5       rS rS rS rS r\R.                  R=                  SS9S 5       rS r g)    N)Printer)MESSAGESNO_UTF8supports_ansic                  d   [        SS9n SnU R                  U5      nU R                  U5      nU R                  U5      nU R	                  U5      nU R                  U5      U:X  d   e[        (       ag  [        (       d\  USR                  U5      :X  d   eUSR                  U5      :X  d   eUSR                  U5      :X  d   eUSR                  U5      :X  d   e[        (       ag  [        (       a\  USR                  U5      :X  d   eUS	R                  U5      :X  d   eUS
R                  U5      :X  d   eUSR                  U5      :X  d   e[        (       dg  [        (       d\  USR                  U5      :X  d   eUSR                  U5      :X  d   eUSR                  U5      :X  d   eUSR                  U5      :X  d   e[        (       di  [        (       a]  USR                  U5      :X  d   eUSR                  U5      :X  d   eUSR                  U5      :X  d   eUSR                  U5      :X  d   eg g g )NTno_printThis is a test.u   [38;5;2m✔ {}[0mu   [38;5;1m✘ {}[0mu   [38;5;3m⚠ {}[0mu   [38;5;4mℹ {}[0mz[38;5;2m[+] {}[0mz[38;5;1m[x] {}[0mz[38;5;3m[!] {}[0mz[38;5;4m[i] {}[0mu   ✔ {}u   ✘ {}u   ⚠ {}u   ℹ {}z[+] {}z[x] {}z[!] {}z[i] {})	r   goodfailwarninfotextSUPPORTS_ANSIr   format)pr   r   r   r   r   s         S/home/james-whalen/.local/lib/python3.13/site-packages/wasabi/tests/test_printer.pytest_printerr      s   AD66$<D66$<D66$<D66$<D66$<4}WW5<<TBBBB5<<TBBBB5<<TBBBB5<<TBBBB}299$????299$????299$????299$????={))$////{))$////{))$////{))$////=WWxt,,,,xt,,,,xt,,,,xt,,,,	 %=    c                      [        5       n SnU R                  U5        U R                  U5        U R                  U5        U R	                  U5        g )Nr
   )r   r   r   r   r   r   r   s     r   test_printer_printr   +   s:    	ADFF4LFF4LFF4LFF4Lr   c                  z    [        SSS9n U R                  S5      n[        R                  " SU5      nU(       d   eg )NT)r	   	timestampzHello worldz6^[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2})r   r   rematch)r   resultmatchess      r   test_printer_print_timestampr   4   s5    .AVVM"FhhOQWXGN7r   c                     [        SSS9n SnU R                  U5      U:X  d   eU R                  U5      U:X  d   eU R                  U5      U:X  d   eU R	                  U5      U:X  d   eU R                  U5      U:X  d   eg )NTFr	   prettyr
   )r   r   r   r   r   r   r   s     r   test_printer_no_prettyr#   ;   s    e,AD66$<466$<466$<466$<466$<4r   c                     SSS.n SSS.n[        SXS9nS	nUR                  US
SS9nUR                  U5      n[        (       a9  [        (       d.  USR                  U5      :X  d   eUSR                  U5      :X  d   e[        (       a9  [        (       a.  USR                  U5      :X  d   eUSR                  U5      :X  d   e[        (       d9  [        (       d.  USR                  U5      :X  d   eUSR                  U5      :X  d   e[        (       d;  [        (       a/  USR                  U5      :X  d   eUSR                  U5      :X  d   eg g g )N   c   )yellowpurpleu   ⚠️?)r   questionT)r	   colorsiconsr
   r(   r*   )coloriconz[38;5;99m? {}[0mu   [38;5;3m⚠️ {}[0mz[38;5;3m?? {}[0mz? {}u	   ⚠️ {}z?? {})r   r   r   r   r   r   )r+   r,   r   r   purple_questionwarnings         r   test_printer_customr1   E   s:   r*F#5Ef:ADffT
fCOffTlG}WW"<"C"CD"IIII>EEdKKKK}"<"C"CD"IIII4;;DAAAA=&--"5555+2248888=WW&--"5555'...... %=r   c                  r    [        SS9n SnU R                  USS9n[        (       a	  US:X  d   eg US:X  d   eg )NTr   This is a text.r%   )r-   z[38;5;220mThis is a text.[0m)r   r   r   r   r   r   s      r   test_color_as_intr5   Z   sF    ADVVDV$F}????****r   c                      [        SS9n SnU R                  USS9n[        U5        [        (       a	  US:X  d   eg US:X  d   eg )NTr   r3   redbg_colorz[48;5;1mThis is a text.[0mr   r   printr   r4   s      r   test_bg_colorr<   d   sM    ADVVD5V)F	&M}====****r   c                      [        SS9n SnU R                  USS9n[        U5        [        (       a	  US:X  d   eg US:X  d   eg )NTr   r3   r%   r8   z[48;5;220mThis is a text.[0mr:   r4   s      r   test_bg_color_as_intr>   o   sM    ADVVD3V'F	&M}????****r   c                      [        SS9n SnU R                  USSS9n[        U5        [        (       a	  US:X  d   eg US:X  d   eg )NTr   r3   greenr'   )r-   r9   z#[38;5;2;48;5;3mThis is a text.[0mr:   r4   s      r   test_color_and_bc_colorrA   z   sO    ADVVD(V;F	&M}DDDD****r   c                     [        5       n Sn[        S5       H  nU R                  U5        M     [        S5       H  nU R                  U5        M     [        S5       H  nU R	                  U5        M     U R
                  [        R                     S:X  d   eU R
                  [        R                     S:X  d   eU R
                  [        R                     S:X  d   eg )Nr
            )
r   ranger   r   r   countsr   GOODFAILWARN)r   r   is      r   test_printer_countsrL      s    	AD1X	t 1X	t 1X	t 88HMM"a'''88HMM"a'''88HMM"a'''r   c                      [        SSS9n SnU R                  U5      U:X  d   eU R                  USS9SR                  U5      :X  d   eg )NTFr!   r
   )spacedz
{}
)r   r   r   r   s     r   test_printer_spacedrO      sM    e,AD66$<466$t6$(====r   c                  B   [        SSS9n U R                  5       S:H    U R                  S5      S:H    U R                  SSS9S	:H    U R                  S
5      S:X  d   e[        R                  " [        5         U R                  SSS9  S S S 5        g ! , (       d  f       g = f)N   T)line_maxr	   z[1m
================[0mtestz[1m
====== test ======[0m*)charz[1m
****** test ******[0mz)This is a very long text, it is very longz4[1m
 This is a very long text, it is very long [0mz~.)r   dividerpytestraises
ValueErrorr   s    r   test_printer_dividerr[      s    d+AIIK55IIf==IIf3I#GG			=>H	I	I 
z	"			&t	$ 
#	"	"s   6B
Bhide_animationFTc                    [        U S9n[        S5        UR                  S5         [        R                  " S5        S S S 5        UR                  S5        UR                  S5         [        R                  " S5        S S S 5        UR                  S5        UR                  S5         [        R                  " S5        S S S 5        UR                  S5        g ! , (       d  f       N= f! , (       d  f       Nr= f! , (       d  f       NB= f)	N)r\   

Loading...rD   Success!zSomething else...rC   zYo!)r   r;   loadingtimesleepr   )r\   r   s     r   test_printer_loadingrd      s    ~.A	$K	
<	 

1 
!FF:	
&	'

1 
(FF5M	
<	 

1 
!FF: 
!	  
(	' 
!	 s#   C'C*(C;
C'*
C8;
D	c                      S n [         R                  " [        5         U " 5         S S S 5        g ! , (       d  f       g = f)Nc                      [        5       n [        S5        U R                  5          [        S5      e! , (       d  f       g = f)Nr^   This is an error.)r   r;   ra   	ExceptionrZ   s    r   loading_with_exceptionEtest_printer_loading_raises_exception.<locals>.loading_with_exception   s-    IdYY[/00 [s	   2
A )rW   rX   rh   )ri   s    r   %test_printer_loading_raises_exceptionrk      s'    1 
y	!  
"	!	!s   /
=c                      [        SS9n U R                  S5         [        R                  " S5        S S S 5        U R	                  S5        g ! , (       d  f       N = f)NTr   r_   rD   r`   )r   ra   rb   rc   r   rZ   s    r   test_printer_loading_no_printrm      s=    A	
<	 

1 
!FF: 
!	 s   A
Ac                      Sn SnS[         R                  U'   [        SS9nUR                  U 5      S;   d   e[         R                  U	 g )Nr
   WASABI_LOG_FRIENDLYTrueTr   u   ✔ This is a test.z[+] This is a test.)osenvironr   r   r   ENV_LOG_FRIENDLYr   s      r   test_printer_log_friendlyrv      sJ    D,#)BJJ A66$<LLLL


#$r   c                      Sn SnS[         R                  U'   [        SSS9nUR                  U 5      S;   d   e[	        UR                  U 5      5        [         R                  U	 g )Nr
   CUSTOM_LOG_FRIENDLYrp   TCUSTOM)r	   
env_prefixrq   )rr   rs   r   r   r;   rt   s      r    test_printer_log_friendly_prefixr{      s\    D,#)BJJ (3A66$<LLLL	!&&,


#$r   z1Now seems to raise TypeError: readonly attribute?)reasonc                 <    U R                  SS5        [        5       ng)zrTest that printer works even if sys.stdout.encoding is set to None. This
previously caused a very confusing error.zsys.stdout.encodingN)setattrr   )monkeypatchr   s     r   test_printer_none_encodingr      s     -t4	Ar   c                     Sn [        SSS9n[        R                  " [        5       nUR	                  U SS9  SSS5        [        WR                  5      R                  5       [        U 5      * S U :X  d   eg! , (       d  f       NE= f)zbTest that the printer raises if a non-zero exit code is provided, even
if no_print is set to True.rg   TFr!   )exitsN)	r   rW   rX   
SystemExitr   strvaluestriplen)errr   es      r   #test_printer_no_print_raise_on_exitr      sm     Ce,A	z	"a	s$ 
#qww<S	,333 
#	"s   A77
B)!rr   r   rb   rW   wasabi.printerr   wasabi.utilr   r   r   r   r   r   r   r#   r1   r5   r<   r>   rA   rL   rO   r[   markparametrizerd   rk   rm   rv   r{   skipr   r    r   r   <module>r      s    	 	   " 8 8-< /*++++(>
% )E4=9 : !%% LM N4r   