
    (phG                         S SK r S SKrS SKrS SKrS SKrS SKrS SKJrJrJ	r	J
r
Jr  S SKrS SK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)	all_termsas_subprocessTestTerminalmany_columns
many_linesc                  *    [         S 5       n U " 5         g )Nc                  |    [        SS9n U R                  S5      n[        S5      nU R                  U5      U:X  d   eg )Nxterm-256colorkindu   コンニチハ, セカイ!)   r   r   r   r      r   r   r   r   r   )r   bold_redsumlength)termgivenexpecteds      U/var/www/html/venv/lib/python3.13/site-packages/blessed/tests/test_length_sequence.pychildtest_length_cjk.<locals>.child   sB    !12 <=9: {{5!X---    r   r   s    r   test_length_cjkr      s    . . 
Gr   c                  *    [         S 5       n U " 5         g )Nc                  Z   SS K n SSKJn  [        SS9n[        R
                  R                  [        R
                  R                  [        5      S5      nU R                  USS5      R                  5       nUR                  US   5      S:X  d   eUR                  US	   5      S
:X  d   eUR                  US   5      S:X  d   eUR                  US   5      S:X  d   eUR                  US   5      S:X  d   eUR                  US   5      S:X  d   eUR                  US   5      S:X  d   eg )Nr   )Sequencer
   r   zwall.ansrzutf-8C   r   K   r   N               M   )codecsblessed.sequencesr   r   ospathjoindirname__file__open	readlinesr   )r(   r   r   fnameliness        r   r   "test_length_ansiart.<locals>.child(   s   .!12 RWW__X6
CE30::<{{58$***{{58$***{{58$***{{58$***{{58$***{{58$***{{58$***r   r   r   s    r   test_length_ansiartr4   '   s    + + 
Gr   c                 ,    [         S 5       nU" U 5        g)z:Ensure T.length(string containing sequence) is correcterm.c           
         [        U S9nSnUR                  (       Ga  UR                  UR                  5      S:X  d   eUR                  UR                  S5      5      S:X  d   eUR                  UR                  5      S:X  d   eUR                  UR                  S5      5      S:X  d   eUR	                  UR                  5      S:X  d   eUR                  UR                  5      S:X  d   eUR                  UR                  5      S:X  d   eUR	                  UR                  S5      5      S:X  d   eUR	                  UR                  S5      S	5      S:X  d   eUR                  UR                  S5      5      S
:X  d   eUR                  UR                  S5      5      S:X  d   eUR	                  UR                  5      S:X  d   eUR                  UR                  5      S:X  d   eUR                  UR                  5      S:X  d   eUR	                  UR                  S5      5      S:X  d   eUR                  UR                  S5      5      S
:X  d   eUR                  UR                  S5      5      S:X  d   eUR                  UR                  5      S:X  d   eUR                  UR                  S5      5      S:X  d   eUR                  UR                  5      S:X  d   eUR                  UR                  S5      5      S:X  d   eUR                  (       Ga  UR                  UR                  5      S:X  d   eUR                  UR                  S5      5      S:X  d   eUR                  UR                  5      S:X  d   eUR                  UR                  S5      5      S:X  d   eUR	                  UR                  5      S:X  d   eUR	                  UR                  S5      5      S:X  d   eUR	                  UR                  5      S:X  d   eUR	                  UR                  S5      5      S:X  d   eUR                  UR                  S5      5      S
:X  d   eUR                  UR                  S5      5      S:X  d   eUR                  UR                  5      S:X  d   eUR                  UR                  S5      5      S:X  d   eUR                  UR                  5      S:X  d   eUR                  UR                  S5      5      S:X  d   eUR                  (       Ga  UR                  UR                  5      S:X  d   eUR                  UR                  S5      5      S:X  d   eUR                  UR                  5      S:X  d   eUR                  UR                  S5      5      S:X  d   eUR	                  UR                  5      S:X  d   eUR	                  UR                  S5      5      S:X  d   eUR	                  UR                  5      S:X  d   eUR	                  UR                  S5      5      S:X  d   eUR                  UR                  S5      5      S
:X  d   eUR                  UR                  S5      5      S:X  d   eUR                  UR                  5      S:X  d   eUR                  UR                  S5      5      S:X  d   eUR                  UR                  5      S:X  d   eUR                  UR                  S5      5      S:X  d   eUR                  (       Ga  UR                  UR                  5      S:X  d   eUR                  UR                  S5      5      S:X  d   eUR                  UR                  5      S:X  d   eUR                  UR                  S5      5      S:X  d   eUR	                  UR                  5      S:X  d   eUR	                  UR                  S5      5      S:X  d   eUR	                  UR                  S5      S	5      S:X  d   eUR	                  UR                  5      S:X  d   eUR	                  UR                  S5      5      S:X  d   eUR                  UR                  5      S:X  d   eUR                  UR                  S5      5      S:X  d   eUR                  UR                  5      S:X  d   eUR                  UR                  S5      5      S:X  d   eUR                  (       aB  UR                  UR                  5      S:X  d   eUR	                  UR                  5      S:X  d   eUR                  (       aB  UR                  UR                  5      S:X  d   eUR	                  UR                  5      S:X  d   eUR                   (       aB  UR                  UR                   5      S:X  d   eUR	                  UR                   5      S:X  d   eUR"                  (       aB  UR                  UR"                  5      S:X  d   eUR	                  UR"                  5      S:X  d   eUR                  UR$                  5      S:X  d   eUR                  UR%                  S5      5      S:X  d   eUR                  UR&                  5      S:X  d   eUR                  UR'                  S5      5      S:X  d   eUR                  S5      S:X  d   eUR	                  S5      S:X  d   eUR                  S5      S;   d   eUR	                  S5      S:X  d   eUR                  SUR(                  -   5      S:X  d   eUR*                  (       a)  UR                  SUR+                  S5      -   5      S:X  d   eUR                  UR,                  5      S:X  d   eUR.                  (       a&  UR                  UR/                  S5      5      S:X  d   eUR                  UR&                  5      S:X  d   eUR                  UR1                  S5      5      S:X  d   eUR                  UR$                  5      S:X  d   eUR                  UR3                  S5      5      S:X  d   eSR5                  [6        R8                  " [;        U[6        R<                  " S/5      5      6 5      nUR                  U5      [?        U5      :X  d   eg )Nr   zThe softest things of the world Override the hardest things of the world That which has no substance Enters into that which has no openingsr   xr    z  x  zz  x  qzqz  xzx  r   zx	)   	   _
__________
   z_) r   boldr   r   striprstriplstrip
strip_seqs	underlineunderline_redreversereverse_redblink	blink_redhome	clear_eolenter_fullscreenexit_fullscreen	move_downmove_up	move_leftcub
move_rightcufcuucudr,   	itertoolschainzipcyclelen)r   r   
plain_text
text_wseqss       r   r   #test_sequence_length.<locals>.child=   s
   &@
 999KK		*a/0/KK		$0A565KK.!343KKd 349:9JJtyy)S010KK		*c121KK		*c121JJtyy23t;<;JJtyy4d;xGHGKK		( 34>?>KK		( 34>?>JJt}}-454KK.#565KK.#565JJt}}X674?@?KKh 78FBCBKKh 78FBCBOODII.#565OODIIh$78HDEDOODMM2c9:9OODMM($;<HIH>>>KK/1454KKt 45:;:KK 2 23q898KK 2 24 89Q>?>JJt~~.#565JJt~~h78D@A@JJt112c9:9JJt11(;<DEDKK 2 28 <=GHGKK 2 28 <=GHGOODNN3s:;:OODNN8$<=IJIOOD$6$673>?>OOD$6$6x$@AXMNM<<<KK-232KKT 23q898KK 0 01Q676KK 0 0 671<=<JJt||,343JJt||H56$>?>JJt//0C787JJt//9:dBCBKK 0 0 :;vEFEKK 0 0 :;vEFEOODLL1S898OODLL$:;xGHGOOD$4$45<=<OOD$4$4X$>?8KLK:::KK

+q010KK

4 01Q676KK/1454KKt 45:;:JJtzz*c121JJtzz(34<=<JJtzz*5u=IJIJJt~~.#565JJt~~h78D@A@OODJJ/3676OODJJx$89XEFEOODNN3s:;:OODNN8$<=IJI99KK		*a/0/JJtyy)S010>>KK/1454JJt~~.#565  KK 5 56!;<;JJt445<=<KK 4 45:;:JJt334;<; DNN+q010DNN1-.!343DLL)Q./.DLLO,121 F#q()(

6"c)*) E"f,-,

5!S()(D4>>12a78788KKdhhrl :;q@A@DOO,12188KK-343 DLL)Q./.DHHRL)Q./.DNN+q010DHHRL)Q./.
 XXiooY__eW568 9
J'3z?:;:r   Nr   r   r   s     r   test_sequence_lengthr`   ;   s!    D< D<L 
)r   c                  *    [         S 5       n U " 5         g)8Test height and width is appropriately queried in a pty.c                     S[         R                  S'   S[         R                  S'   [        [        R                  " 5       S9n U R
                  n[        R                  n S U l        S [        l        U R                  5       nU R                  nU R                  nXl        U[        l        UR                  Us=:X  a  S:X  d   e   eUR                  Us=:X  a  S:X  d   e   eg ! Xl        U[        l        f = f)N99COLUMNS11LINES)streamc      )r*   environr   sixStringIO_init_descriptorsys
__stdout___height_and_widthwidthheightws_colws_row)r   	save_initsave_stdoutwinsizerr   rs   s         r   r   test_env_winsize.<locals>.child   s     !%

9"

73<<>2))	nn	)$(D!!CN,,.GJJE[[F$-!(CN~~,",,,,,~~-2----- %.!(CNs    :C$ $C7Nr   r   s    r   test_env_winsizerz      s    . .& 
Gr   c                 ,    [         SS j5       nU" XS9  g)rb   c                 ~   [         R                  " SXSS5      n[        R                  " [        R
                  R                  5       [        R                  U5        [        5       nUR                  5       nUR                  U:X  d   eUR                  U :X  d   eUR                  U:X  d   eUR                  U :X  d   eg )NHHHHr   )structpackfcntlioctlro   rp   filenotermios
TIOCSWINSZr   rq   rr   rs   rt   ru   )r2   colsvalr   rx   s        r   r   test_winsize.<locals>.child   s     kk&%q!4CNN))+W-?-?E~((*zzT!!!{{e###~~%%%~~&&&r   )r2   r   N   P   r   )r   r   r   s      r   test_winsizer      s    	' 	' 

.r   c                      [         S 5       n g )Nc           
      x   [        U S9nSn[        U5      nSR                  [        U5       VVs/ s H  u  pEUR	                  US-  5      < U< 3PM!     snn5      nXaR
                  -  nUR                  US5      nUR                  US5      nUR                  US5      n	UR                  U5      U:X  d   eUR                  U	R                  5       5      U:X  d   eUR                  U	5      [        UR                  S5      5      :X  d   eUR                  UR                  5       5      U:X  d   eUR                  U5      [        UR                  S5      5      :X  d   eUR                  UR                  5       5      U:X  d   eUR                  U5      [        UR                  S5      5      :X  d   eg s  snnf )Nr   %pony express, all aboard, choo, choo!r8      X   )r   r[   r,   	enumeratecolornormalljustrjustcenterr   rA   )
r   r   pony_msgpony_lennchpony_colored	ladjusted	radjustedcentereds
             r   r   2test_Sequence_alignment_fixed_width.<locals>.child   s   &:x=xx#H-/- zz!a%(".-/0 	#JJ|R0	JJ|R0	;;|R0L)X565HNN,-9:9H%X__R-@)AABAIOO-.(:;:I&#hnnR.@*AABAIOO-.(:;:I&#hnnR.@*AABA/s   &F6
r   r   s    r   #test_Sequence_alignment_fixed_widthr      s    C Cr   c                 ,    [         SS j5       nU" U S9  g)zETests methods related to Sequence class, namely ljust, rjust, center.c           
      d   [         R                  " SXSS5      n[        R                  " [        R
                  R                  5       [        R                  U5        [        U S9nSn[        U5      nSR                  [        U5       VVs/ s H  u  pxUR                  US-  5      < U< 3PM!     snn5      n	XR                  -  n	UR                  U	5      n
UR!                  U	5      nUR#                  U	5      nUR%                  U	5      U:X  d   eUR%                  UR'                  5       5      U:X  d   eUR%                  U5      [        UR#                  UR(                  5      5      :X  d   eUR%                  U
R'                  5       5      U:X  d   eUR%                  U
5      [        UR                  UR(                  5      5      :X  d   eUR%                  UR'                  5       5      U:X  d   eUR%                  U5      [        UR!                  UR(                  5      5      :X  d   eg s  snnf )Nr}   r   r   r   r8   r   )r~   r   r   r   ro   rp   r   r   r   r   r[   r,   r   r   r   r   r   r   r   rA   rr   )r   r2   r   r   r   r   r   r   r   r   r   r   r   s                r   r   &test_Sequence_alignment.<locals>.child	  s    kk&%q!4CNN))+W-?-?E&:x=xx#H-/- zz!a%(".-/0 	#JJ|,	JJ|,	;;|,L)X565HNN,-9:9H%X__TZZ-H)IIJIIOO-.(:;:I&#hnnTZZ.H*IIJIIOO-.(:;:I&#hnnTZZ.H*IIJI/s   &H,
r   Nr   r   r_   s     r   test_Sequence_alignmentr     s     K K. 
yr   c                 ,    [         S 5       nU" U 5        g)8Test parser about sequences that do not move the cursor.c                 ^   SSK Jn  [        U S9nSU" SU5      :X  d   eSU" SU5      :X  d   eSU" UR                  S5      U5      :X  d   e[	        UR
                  5      U" UR
                  U5      :X  d   e[	        UR                  5      U" UR                  U5      :X  d   e[	        UR                  5      U" UR                  U5      :X  d   e[	        UR                  5      U" UR                  U5      :X  d   e[	        UR                  5      U" UR                  U5      :X  d   e[	        UR                  5      U" UR                  U5      :X  d   eUR                  (       a,  [	        UR                  5      U" UR                  U5      :X  d   e[	        UR                  5      U" UR                  U5      :X  d   e[	        UR                  5      U" UR                  U5      :X  d   eSUR                  4 H<  n[	        UR                  U5      5      nU" UR                  U5      U5      nXE:X  a  M<   e   [	        UR                   5      U" UR                   U5      :X  d   e[	        UR"                  5      U" UR"                  U5      :X  d   e[	        UR$                  5      U" UR$                  U5      :X  d   e[	        UR&                  5      U" UR&                  U5      :X  d   e[	        UR(                  5      U" UR(                  U5      :X  d   UR(                  UR*                  45       eg )Nr   measure_lengthr   r8   xyzzyi)r)   r   r   rT   r[   rL   	clear_bol	clear_eosr@   redciviscvvisrE   rG   number_of_colorsr   normal_cursorhide_cursorsaveitalicstandout
_wont_move)r   r   r   _numr   r   s         r   r   .test_sequence_is_movement_false.<locals>.child%  s   4&^C../.^Hd3343 ^DHHTND99:9DNN#~dnnd'KKLKDNN#~dnnd'KKLKDNN#~dnnd'KKLKDII.D"AABADHH$!??@?DJJ>$**d#CCDC::

O~djj$'GGHGDNN#~dnnd'KKLKDLL!^DLL$%GGHG--.D4::d+,H"4::d#3T:E%&% / D&&'>$:L:Ld+SSTSD$$%8H8H$)OOPODII.D"AABADKK N4;;$EEFEDMM"nT]]D&II 	4MM4??3	4Ir   Nr   r_   s     r   test_sequence_is_movement_falser   #  s    4 4@ 
)r   c                 ,    [         S 5       nU" U 5        g)r   c                 8   SSK Jn  [        U S9nUR                  (       a/  [	        U" X"R                  5      5      S   R
                  (       a   eUR                  (       a/  [	        U" X"R                  5      5      S   R
                  (       a   eUR                  (       a/  [	        U" X"R                  5      5      S   R
                  (       a   eUR                  (       a/  [	        U" X"R                  5      5      S   R
                  (       a   eUR                  (       a/  [	        U" X"R                  5      5      S   R
                  (       a   eUR                  (       a/  [	        U" X"R                  5      5      S   R
                  (       a   eUR                  (       a/  [	        U" X"R                  5      5      S   R
                  (       a   eUR                  (       a/  [	        U" X"R                  5      5      S   R
                  (       a   eUR                  (       a/  [	        U" X"R                  5      5      S   R
                  (       a   eUR                  S5      (       a4  [	        U" X"R                  S5      5      5      S   R
                  (       a   eUR                  (       a/  [	        U" X"R                  5      5      S   R
                  (       a   eUR                   (       a/  [	        U" X"R                   5      5      S   R
                  (       a   eUR"                  (       a/  [	        U" X"R"                  5      5      S   R
                  (       a   eUR$                  (       a0  [	        U" X"R$                  5      5      S   R
                  (       a   eg g )Nr   
iter_parser   r   )r)   r   r   rL   next	will_mover   r   r@   r   r   r   rE   rG   r   r   r   r   r   r   r   r   s      r   r   +test_termcap_will_move_false.<locals>.childJ  sc   0&>>Jt^^<=a@JJJJ>>Jt^^<=a@JJJJ>>Jt^^<=a@JJJJ99JtYY78;EEEE88JtXX67:DDDD::JtZZ89!<FFFF::JtZZ89!<FFFF>>Jt^^<=a@JJJJ<<Jt\\:;A>HHHH::a==JtZZ];<Q?IIIIJt-?-?@A!DNNNN99JtYY78;EEEE;;Jt[[9:1=GGGG==Jt]];<Q?IIIII r   Nr   r_   s     r   test_termcap_will_move_falser   H  s!    J J@ 
)r   c                 ,    [         S 5       nU" U 5        g)z2Test parsers about sequences that move the cursor.c                 r   SSK Jn  [        U S9n[        UR	                  SS5      5      U" UR	                  SS5      U5      :X  d   e[        UR	                  S5      5      U" UR	                  S5      U5      :X  d   eUR
                  (       a,  [        UR
                  5      U" UR
                  U5      :X  d   eUR                  (       a,  [        UR                  5      U" UR                  U5      :X  d   eUR                  (       a,  [        UR                  5      U" UR                  U5      :X  d   eUR                  (       a,  [        UR                  5      U" UR                  U5      :X  d   eUR                  (       a6  [        UR                  S5      5      U" UR                  S5      U5      :X  d   eUR                  (       a6  [        UR                  S5      5      U" UR                  S5      U5      :X  d   eUR                  (       a,  [        UR                  5      U" UR                  U5      :X  d   eUR                  (       a,  [        UR                  5      U" UR                  U5      :X  d   eUR                  (       a-  [        UR                  5      U" UR                  U5      :X  d   eg g )Nr   r   r   b   L   6   M  )r)   r   r   r[   movecud1cub1cuf1cuu1rR   rT   rK   restoreclearr   r   r   s      r   r   -test_sequence_is_movement_true.<locals>.childq  s<   4&DIIb"%&tyyR0$78 	9 8DIIbM"tyy}d34 	5 499TYY,TYY="> 	? ?99TYY,TYY="> 	? ?99TYY,TYY="> 	? ?99TYY,TYY="> 	? ?88DHHSM 2+DHHSM4@!A 	B B88DHHSM 2+DHHSM4@!A 	B B99TYY,TYY="> 	? ?<<C$5!/d!C%D 	E E::#djj/-djj$?#@ 	A A #@:r   Nr   r_   s     r   test_sequence_is_movement_truer   o  s     A A6 
)r   c                 ,    [         S 5       nU" U 5        g)z1Test parser about sequences that move the cursor.c           	         SSK Jn  [        U S9n[        U" X"R	                  SS5      5      5      S   R
                  (       d   e[        U" X"R	                  S5      5      5      S   R
                  (       d   e[        U" X"R                  5      5      S   R
                  (       d   e[        U" X"R                  5      5      S   R
                  (       d   e[        U" X"R                  5      5      S   R
                  (       d   e[        U" X"R                  5      5      S   R
                  (       d   eUR                  S5      (       a4  [        U" X"R                  S5      5      5      S   R
                  (       d   eUR                  S5      (       a4  [        U" X"R                  S5      5      5      S   R
                  (       d   e[        U" X"R                  5      5      S   R
                  (       d   e[        U" X"R                  5      5      S   R
                  (       d   e[        U" X"R                  5      5      S   R
                  (       d   eg )	Nr   r   r   r   r   r   r   r   )r)   r   r   r   r   r   r   r   r   r   rR   rT   rK   r   r   r   s      r   r   *test_termcap_will_move_true.<locals>.child  s   0&JtYYr2%678;EEEEJtYYr]34Q7AAAAJtYY/03====JtYY/03====JtYY/03====JtYY/03====88C==
4#78;EEEE88C==
4#78;EEEEJtYY/03====Jt\\23A6@@@@JtZZ01!4>>>>r   Nr   r_   s     r   test_termcap_will_move_truer     s    ? ?  
)r   c                  (    [         S 5       n U " SS9  g)z;Test parsers about sequences received from foreign sources.c                 R    SSK Jn  [        U S9nU" SU5      [        S5      :X  d   eg )Nr   r   r   z[m)r)   r   r   r[   r   s      r   r   %test_foreign_sequences.<locals>.child  s(    4&i.#h-???r   ansir   Nr   r   s    r   test_foreign_sequencesr     s     @ @ 
vr   )rW   r   r~   r   ro   r*   blessed.tests.accessoriesr   r   r   r   r   pytestrl   r   r4   r`   rz   r   r   r   r   r   r   r   r    r   r   <module>r      sm        
 	   
(IX2/"C,8#J#N@.r   