
    ;OOfG4                         d dl Z d dlZd dlZd dl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  G d d	e      Z ej"                  ej$                  d
k(  d       G d dej&                               Zy)    N)	dropwhile)ListBox)
BoxAdapter)vterm)signalsBc                   :    e Zd Z ed      Zd Zd Zd Zd Zd Z	y)DummyCommandz
|||quit|||c                 F    t        j                         \  | _        | _        y N)ospipereaderwriterselfs    W/var/www/premiumrankchecker/venv/lib/python3.12/site-packages/urwid/tests/test_vterm.py__init__zDummyCommand.__init__%   s    #%779 T[    c                    t        t        j                  dt        j                        }|j                  t	        d             	 | j                  d      }| j                  |k(  ry |j                  |       |j                          C)Nbufferzci   )getattrsysstdoutwriter	   read
QUITSTRINGflush)r   r   datas      r   __call__zDummyCommand.__call__(   sa    Xszz:QwZ 99T?D$&LLLLN r   c                     	 	 t        j                  | j                  |      S # t        $ r(}|j                  t        j
                  k7  r Y d }~nd }~ww xY wVr   )r   r   r   OSErrorerrnoEINTR)r   sizees      r   r   zDummyCommand.read4   sL    wwt{{D11 77ekk) * s   # 	AAAc                 D    t        j                  | j                  |       y r   )r   r   r   r   r    s     r   r   zDummyCommand.write<   s    
d#r   c                 :    | j                  | j                         y r   )r   r   r   s    r   quitzDummyCommand.quit?   s    

4??#r   N)
__name__
__module____qualname__r	   r   r   r!   r   r   r+    r   r   r   r   "   s$    <J-
$$r   r   win32zdoes not run on windows)reasonc                   D   e Zd Zd Zd Zd Zd Zd Zd Zd5dZ	d Z
d	 Zd6d
Zd7dZd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d  Z!d! Z"d" Z#d# Z$d$ Z%d% Z&d& Z'd' Z(d( Z)d) Z*d* Z+d+ Z,d, Z-d- Z.d. Z/d/ Z0d0 Z1d1 Z2d2 Z3d3 Z4d4 Z5y)8TermTestc                     t               | _        t        j                  | j                        | _        | j                  dd       y )NP      )r   commandr   Terminaltermresizer   s    r   setUpzTermTest.setUpE   s-    #~NN4<<0	Br   c                 8    | j                   j                          y r   )r7   r+   r   s    r   tearDownzTermTest.tearDownK   s    r   c                      d  _          fd}| _        t        j                   j                  | j                         y )Nc                     ||f_         y r   )_sig_response)widgetargskwargsr   s      r   _set_signal_responsez5TermTest.connect_signal.<locals>._set_signal_responseQ   s    "&Dr   )r@   rD   r   connect_signalr9   )r   signalrD   s   `  r   rE   zTermTest.connect_signalN   s4    !	0$8!tyy&$2K2KLr   c                 @    | j                  | j                  ||f       y r   )assertEqualr@   )r   rB   rC   s      r   expect_signalzTermTest.expect_signalW   s    ++dF^<r   c                 Z    t        j                  | j                  || j                         y r   )r   disconnect_signalr9   rD   )r   rF   s     r   rK   zTermTest.disconnect_signalZ   s    !!$))VT5N5NOr   c                     d| _         y )NT)beeped)r   objs     r   caught_beepzTermTest.caught_beep]   s	    r   c                 j    ||f| _         |s(| j                  j                  | j                   d       y y )NFfocus)termsizer9   render)r   widthheightsofts       r   r:   zTermTest.resize`   s0    IIT]]%8 r   c                     t        |      }| j                  j                  |j                  t        d      t        d                   y )Nz\e)r	   r7   r   replacer)   s     r   r   zTermTest.writee   s0    w4<<$6;<r   c                 8    | j                  t        d             y )N   )r   chrr   s    r   r   zTermTest.flushi   s    

3t9r   c                 2   | j                   j                          | j                   j                  | j                  |      }|rud }t	        |j                               }|D cg c]   }t	        t        |t        |                  " }}|D cg c]"  }t        |      st	        t        |            $ c}S |j                  }|D cg c]  }|j                          }}t        d      j                  |      j                         S c c}w c c}w c c}w )NrQ   c                 $    | d d t        d      fk(  S )N r   )cs    r   <lambda>zTermTest.read.<locals>.<lambda>p   s    tT1S6&:!: r   
)r9   wait_and_feedrT   rS   listcontentr   reversedlentextrstripr	   join)r   rawrR   renderedis_emptyrf   lineliness           r   r   zTermTest.readl   s    		!99##DMM#?:H8++-.G!(* )Hhtn=> *E *5:HTc$iD$(HHmmG/67tT[[]7E7T7<<&--//*H 8s   $%D
D D	DNc                     t        |t              st        |      }| j                  ||      }|d}n|dz  }|d|d|z  }| j	                  |||       y )N)rl   rR    rc   z
Expected:
z
Got:
)
isinstancere   r	   r   rH   )r   whatdescrl   rR   gots         r   expectzTermTest.expectz   s[    $%T7DiiCui-<DDLDT377dD)r   c                 H    | j                  d       | j                  d       y )Nzhello worldr   rw   r   s    r   test_simplestringzTermTest.test_simplestring   s    

=!M"r   c                 H    | j                  d       | j                  d       y )Nzhello
worldry   r   s    r   test_linefeedzTermTest.test_linefeed   s    

#$N#r   c                 H    | j                  d       | j                  d       y )Nz	aa\eDbbzaa
bbry   r   s    r   test_linefeed2zTermTest.test_linefeed2   s    

=!Hr   c                 H    | j                  d       | j                  d       y )Nzhelloworldworldry   r   s    r   test_carriage_returnzTermTest.test_carriage_return   s    

#$Gr   c                 H    | j                  d       | j                  d       y )Nz2\e[0;0flast\e[0;0f\e[10L\e[0;0ffirst
second
\e[11Dzfirst
second








lastry   r   s    r   test_insertlineszTermTest.test_insertlines   s    

IJ9:r   c                 H    | j                  d       | j                  d       y )Nz1
2
3
4\e[2;1f\e[2Mz1
4ry   r   s    r   test_deletelineszTermTest.test_deletelines   s    

+,Fr   c                 H    | j                  d       | j                  d       y )Nza babry   r   s    r   test_nulzTermTest.test_nul   s    

6Dr   c                    | j                  d       | j                  d       | j                  d       | j                  d       | j                  d       | j                  d       | j                  d       | j                  d       | j                  d	       | j                  d
       | j                  d       | j                  d       y )Nz\e[10;20H11\e[10;0f\e[20C\e[Kz








                   1z\e[A\e[B\e[C\e[D\e[Krr   z\e[50A2z                   2z\e[K\e[50B3z+






















                   3zg\e[K\eM\eM\eM\eM\eM\eM\eM\eM\eM\eM\eM\eM\eM\eM\eM\eM\eM\eM\eM\eM\eM\eM\eM\eM\eM\eM\eM\eM\eM\eM\e[100C4zP                                                                               4z\e[100D\e[K55ry   r   s    r   test_movementzTermTest.test_movement   s    

23-.

+,B

9N#

?#./

56N#

>"Cr   c                 v    d}| j                  || j                  d   dz
  | j                  d   dz
  dz         y )Nz.1-\e[1;%(x)df-2\e[%(y)d;1f3-\e[%(y)d;%(x)df-4r      )xy)r   rS   )r   edgewalls     r   r   zTermTest.edgewall   s@    F

8DMM!$4q$8$(MM!$4q$8: : 	;r   c                 >   | j                  dd       | j                          | j                  d       | j                  ddd       | j                          | j                  d       | j                  ddd       | j                          | j                  d       y )Nr5   r6   1-                                                                            -2





















3-                                                                            -4N   TrW   z1-





















3-)r:   r   rw   r   r   s    r   test_horizontal_resizezTermTest.test_horizontal_resize   sz    B 2 	3B&

+,B&

+,r   c                    | j                  dd       | j                          | j                  d       t        ddd      D ]S  }| j                  d|d       | j	                  d	||d
fz         d|z  }| j                  d|dz
  z  dz   dz   dz   |       U | j                  ddd       | j                          | j                  d       y )Nr5   r6   r      r   Tr   z\e[%df\e[J3-\e[%d;%df-4O   ztry to rescale to 80x%d.rc      z3-zL                                                                            z-4)r:   r   rw   ranger   r   )r   r   ru   s      r   test_vertical_resizezTermTest.test_vertical_resize   s    B 2 	3r1b! 	GAKKADK)JJ0Aq":=>-1DKKA-84?F		G
 	B&

 2 	3r   c                 P    d}| j                  |j                  dd|z                y )Nz2XXX
\e[faaa\e[Bccc\e[Addd\e[Bfff\e[Cbbb\e[A\e[Deeez\e[)r   rZ   )r   argfmts      r   write_movementszTermTest.write_movements   s"    C

3;;ueCi01r   c                 H    | j                  d       | j                  d       y )Nrr   #aaa   ddd      eee
   ccc   fff bbbr   rw   r   s    r   test_defargszTermTest.test_defargs   s    R :;r   c                 H    | j                  d       | j                  d       y )N0r   r   r   s    r   test_nullargszTermTest.test_nullargs   s    S!:;r   c                 H    | j                  d       | j                  d       y )Nz>1234567890\e[5D\e[K
1234567890\e[5D\e[1K
aaaaaaaaaaaaaaa\e[2Kaz!12345
      7890
               ary   r   s    r   test_erase_linezTermTest.test_erase_line   s    

UV9:r   c                     | j                  d       | j                  d       | j                  d       | j                  d       y )Nz1234567890\e[5D\e[Ja12345az98765\e[8D\e[1Jxz   x5a98765ry   r   s    r   test_erase_displayzTermTest.test_erase_display   s4    

)*H

%&M"r   c                 H    | j                  d       | j                  d       y )N/\e[10;20r\e[10f1
2
3
4
5
6
7
8
9
10
11
12\e[faa#aa








2
3
4
5
6
7
8
9
10
11
12ry   r   s    r   test_scrolling_region_simplez%TermTest.test_scrolling_region_simple   s    

OPJKr   c                 H    | j                  d       | j                  d       y )N%\e[2J\e[1;2r\e[5Baaa\eM\eM\eMbbb
XXX

bbb
XXX

aaary   r   s    r   test_scrolling_region_reversez&TermTest.test_scrolling_region_reverse   s    

<=)*r   c                 H    | j                  d       | j                  d       y )NM\e[10;20r\e[2J\e[10Bfoobarblahmooh\e[10Aone\eM\eMtwo\eM\eMthree\eM\eMaahree









moohry   r   s    r   test_scrolling_region_movez#TermTest.test_scrolling_region_move   s    

ij34r   c                 H    | j                  d       | j                  d       y )N\e[?6h\e[10;20r\e[2;5rtest
testry   r   s    r   test_scrolling_twicezTermTest.test_scrolling_twice   s    

/0Hr   c                 H    | j                  d       | j                  d       y )N5\e[?6h\e[10;20r\e[10f1
2
3
4
5
6
7
8
9
10
11
12\e[faa"








aa
3
4
5
6
7
8
9
10
11
12ry   r   s    r   test_cursor_scrolling_regionz%TermTest.test_cursor_scrolling_region   s    

UVDEr   c                 L    | j                  d       | j                  dd       y )Nr   r   TrQ   ry   r   s    r   'test_scrolling_region_simple_with_focusz0TermTest.test_scrolling_region_simple_with_focus   s!    

OPJRVWr   c                 L    | j                  d       | j                  dd       y )Nr   r   TrQ   ry   r   s    r   (test_scrolling_region_reverse_with_focusz1TermTest.test_scrolling_region_reverse_with_focus   s     

<=)6r   c                 L    | j                  d       | j                  dd       y )Nr   r   TrQ   ry   r   s    r   %test_scrolling_region_move_with_focusz.TermTest.test_scrolling_region_move_with_focus  s     

ij34@r   c                 L    | j                  d       | j                  dd       y )Nr   r   TrQ   ry   r   s    r   test_scrolling_twice_with_focusz(TermTest.test_scrolling_twice_with_focus  s    

/0HD)r   c                 L    | j                  d       | j                  dd       y )Nr   r   TrQ   ry   r   s    r   'test_cursor_scrolling_region_with_focusz0TermTest.test_cursor_scrolling_region_with_focus	  s     

UVDDQr   c                 H    | j                  d       | j                  d       y )Nz"\e[21H---\e[10;20r\e[?6h\e[18Htestz


















test
---ry   r   s    r   test_relative_region_jumpz"TermTest.test_relative_region_jump  s    

78+,r   c                    | j                  d       | j                  d       | j                  | j                  j                  j
                         | j                  | j                  j                  j                         | j                  d       | j                  d       | j                  | j                  j                  j
                         | j                  | j                  j                  j                         y )Nz\e[?6;5htesttestz\e[?6;5l)r   rw   
assertTruer9   
term_modesconstrain_scrollingreverse_videoassertFalser   s    r   test_set_multiple_modesz TermTest.test_set_multiple_modes  s    

>"F		,,@@A		,,::;

:F--AAB--;;<r   c                     | j                  d| j                  j                  z         | j                  d| j                  j                  dz
  z  dz          y )Nz\e[?7h\e[1;%dHttr`   r   zt
tr   r9   rU   rw   r   s    r   test_wrap_simplezTermTest.test_wrap_simple  s?    

%		78C499??Q./&89r   c                     | j                  d| j                  j                  z         | j                  d| j                  j                  dz
  z  dz          y )Nz\e[?7h\e[1;%dHt		ar`   r   ar   r   s    r   test_wrap_backspace_tabz TermTest.test_wrap_backspace_tab  s?    

-		?@C499??Q./#56r   c                 T   | j                  d       | j                  dd       | j                  | j                  j                  j                  d        | j                  d       | j                  dd       | j                  | j                  j                  j                  d        y )Nz\e[?25linvisible	invisibleTrQ   zvisible\e[?25h\e[Kvisible)r   rw   rH   r9   cursorassertNotEqualr   s    r   test_cursor_visibilityzTermTest.test_cursor_visibility#  sx    

%&Kt,..5

)*IT*DIINN1148r   c                    | j                   j                   j                  t        dd            }| j                  |d       | j                   j                   j                  t        dd            }| j                  |d       | j                   j                   j                  t        dd            }| j                  |d       y )N11110000r      11000000r   11111101   )r9   get_utf8_lenintrH   )r   lengths     r   test_get_utf8_lenzTermTest.test_get_utf8_len+  s    ,,SQ-?@#,,SQ-?@#,,SQ-?@#r   c                 r    dt         j                  _        | j                  d       | j	                  d       y )Nutf-8
   \e%Gâu   âr   util_target_encodingr   rw   r   s    r   test_encoding_unicodezTermTest.test_encoding_unicode3  s'    &-

#

%&N#r   c                 r    dt         j                  _        | j                  d       | j	                  d       y )Nasciir   ?r   r   s    r   test_encoding_unicode_asciiz$TermTest.test_encoding_unicode_ascii8  s'    &-

#

%&Cr   c                 r    dt         j                  _        | j                  d       | j	                  d       y )Nr   u   \e%GÀrr   r   r   s    r   test_encoding_wrong_unicodez$TermTest.test_encoding_wrong_unicode=  s%    &-

#

>"Br   c                     dt         j                  _        | j                  d       | j	                  d dt        d      fd dt        d      fd d t        d      fd dt        d      fd d t        d      fggd       y )Nr   z \e)0\e(0gg\e)Bn\e)0g\e)B\e(Bnr   gnTrl   r   r   r   r   rw   r	   r   s    r   test_encoding_vt100_graphicsz%TermTest.test_encoding_vt100_graphicsB  s    &-

#

>?3#$QsV!443 4af"543 
  	 	 	r   c           	         dt         j                  _        | j                  d       | j	                  d dt        d      fggd       | j                  d       | j	                  d d t        d      fggd       | j                  d       | j	                  d dt        d	      fd dt        d      fd d t        d	      fggd       y )
Nr   z\e[11m\e[10mUTr   z\ec\e)U\e[3h\e[3lu   \ec\e[11mÛ\e[10mÛ   Ûr   r   s    r   test_ibmpc_mappingzTermTest.test_ibmpc_mappingK  s    &-

#

)*tS!F),-.D9

:;tT1V9-./T:

013&	"T3&	$:46#
   	 	r   c                 R    d  _          fd} j                  d        j                  d        j                  d        j	                  t        d              j                  d        j                  d        j	                  t        d              j                  d       y )	Nc                     |_         y r   )
_the_title)rA   titler   s     r   _change_titlez.TermTest.test_set_title.<locals>._change_title]  s
    #DOr   r  z+\e]666parsed right?\e\te\e]0;test titlest1test1z
test titlez#\e]3;stupid title\e\\e[0G\e[2Ktest2test2zstupid title)r  rE   r   rw   rI   r	   rK   )r   r  s   ` r   test_set_titlezTermTest.test_set_titleZ  s    	$ 	G$

DEG1\?+

9:G1^,-w'r   c                    | j                  d       | j                  d       | j                  d       | j                  d       | j                  d       | j                  d       | j                  d       | j	                  d       y )Nledsz
\e[0qtest1r  clearz\e[3q\e[H\e[Ktest2r	  	caps_lock)rE   r   rw   rI   rK   r   s    r   test_set_ledszTermTest.test_set_ledsi  sk    F#

< G7#

'(G;'v&r   c                 f    t        t        | j                  d      g      }|j                  d      }y )Nr5   )r5   r6   )r   r   r9   rT   )r   listboxrm   s      r   test_in_listboxzTermTest.test_in_listboxs  s(    :dii456>>(+r   )F)FF)NFF)6r,   r-   r.   r;   r=   rE   rI   rK   rO   r:   r   r   r   rw   rz   r|   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r
  r  r  r/   r   r   r3   r3   C   s   M=P9
=0	*#$;;

-32<<;#L+5FX7A*R-=:79$$


(',r   r3   )r$   r   r   unittest	itertoolsr   urwid.listboxr   urwid.decorationr   urwidr   r   urwid.compatr	   objectr   skipIfplatformTestCaser3   r/   r   r   <module>r     sn   *  	 
   ! '   $6 $B (1JKq,x   q, Lq,r   