o
    PhG                     @   s   d dl Z d dlZd dlZd dlZd dlZd dlZd dlmZmZm	Z	m
Z
mZ d dlZd dlZdd Zdd Zdd Zd	d
 Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd ZdS )    N)	all_termsas_subprocessTestTerminalmany_columns
many_linesc                  C      t dd } |   d S )Nc                  S   s2   t dd} | d}td}| ||ksJ d S )Nxterm-256colorkindu   コンニチハ, セカイ!)   r   r   r   r      r   r   r   r   r   )r   bold_redsumlength)termgivenexpected r   ]/var/www/html/env_mimamsha/lib/python3.10/site-packages/blessed/tests/test_length_sequence.pychild   s   

ztest_length_cjk.<locals>.childr   r   r   r   r   test_length_cjk   s   


r   c                  C   r   )Nc                  S   s   dd l } ddlm} tdd}tjtjtd}| 	|dd
 }||d dks.J ||d	 d
ks9J ||d dksDJ ||d dksOJ ||d dksZJ ||d dkseJ ||d dkspJ d S )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linesr   r   r   r   (   s   
z"test_length_ansiart.<locals>.childr   r   r   r   r   test_length_ansiart'   s   

r.   c                 C      t dd }||  dS )z:Ensure T.length(string containing sequence) is correcterm.c                 S   st  t | d}d}|jr||jdksJ ||ddks J ||jdks*J ||ddks6J ||jdks@J ||jdksJJ ||jdksTJ ||ddks`J ||dd	dksmJ ||dd
ksyJ ||ddksJ ||jdksJ ||jdksJ ||jdksJ ||ddksJ ||dd
ksJ ||ddksJ ||jdksJ ||ddksJ ||jdksJ ||ddksJ |jr||jdksJ ||ddksJ ||j	dksJ ||	ddks'J ||jdks2J ||ddks?J ||j	dksJJ ||	ddksWJ ||	dd
ksdJ ||	ddksqJ ||jdks|J ||ddksJ ||j	dksJ ||	ddksJ |j
rO||j
dksJ ||
ddksJ ||jdksJ ||ddksJ ||j
dksJ ||
ddksJ ||jdksJ ||ddksJ ||dd
ksJ ||ddksJ ||j
dks*J ||
ddks7J ||jdksBJ ||ddksOJ |jr||jdks^J ||ddkskJ ||jdksvJ ||ddksJ ||jdksJ ||ddksJ ||dd	dksJ ||jdksJ ||ddksJ ||jdksJ ||ddksJ ||jdksJ ||ddksJ |jr||jdks J ||jdksJ |jr%||jdksJ ||jdks%J |jr?||jdks4J ||jdks?J |jrY||jdksNJ ||jdksYJ ||jdksdJ ||ddksqJ ||jdks|J ||ddksJ |ddksJ |ddksJ |ddv sJ |ddksJ |d|j dksJ |jr|d|d dksJ ||jdksJ |jr||ddksJ ||jdksJ ||ddksJ ||jdksJ ||ddksJ dtjt|tdg }||t|ks8J d S )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_wseqsr   r   r   r   =   s   
z#test_sequence_length.<locals>.childNr   r   r   r   r   r   test_sequence_length;   s   
 rX   c                  C   s   t dd } |   dS )8Test height and width is appropriately queried in a pty.c                  S   s   dt jd< dt jd< tt d} | j}tj}zd | _d t_|  }| j	}| j
}W || _|t_n|| _|t_w |j|  krCdksFJ  J |j|  krRdksUJ  J d S )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winsizerh   ri   r   r   r   r      s"   

"ztest_env_winsize.<locals>.childNr   r   r   r   r   test_env_winsize   s   

ro   c                 C   s   t ddd}|| |d dS )rY      P   c                 S   sr   t d| |dd}ttj tj| t	 }|
 }|j|ks"J |j| ks)J |j|ks0J |j| ks7J d S )NHHHHr   )structpackfcntlioctlre   rf   filenotermios
TIOCSWINSZr   rg   rh   ri   rj   rk   )r-   colsvalr   rn   r   r   r   r      s   ztest_winsize.<locals>.child)r-   rz   Nrp   rq   r   )r   r   r   r   r   r   test_winsize   s   r}   c                  C   s   t dd } d S )Nc                    s  t | d d}t|}d fddt|D }| j7 } |d} |d} |d} ||ks9J  |	 |ksDJ  |t|dksRJ  |	 |ks]J  |t|dkskJ  |	 |ksvJ  |t|dksJ d S )Nr	   %pony express, all aboard, choo, choo!r1   c                    &   g | ]\}}d   |d |f qS z%s%s   color.0nchr   r   r   
<listcomp>       zFtest_Sequence_alignment_fixed_width.<locals>.child.<locals>.<listcomp>X   )
r   rT   r'   	enumeratenormalljustrjustcenterr   r:   )r
   pony_msgpony_lenpony_colored	ladjusted	radjustedcenteredr   r   r   r      s&   


 z2test_Sequence_alignment_fixed_width.<locals>.childr   r   r   r   r   #test_Sequence_alignment_fixed_width   s   r   c                 C   s   t ddd}|| d dS )zETests methods related to Sequence class, namely ljust, rjust, center.rp   rq   c           
         s4  t d||dd}ttj tj| t	| d d}t
|}d fddt|D }| j7 } |} |} |}	 ||ksJJ  |	 |ksUJ  |	t
| jksdJ  | |ksoJ  |t
| jks~J  | |ksJ  |t
| jksJ d S )Nrr   r   r	   r~   r1   c                    r   r   r   r   r   r   r   r     r   z:test_Sequence_alignment.<locals>.child.<locals>.<listcomp>)rs   rt   ru   rv   re   rf   rw   rx   ry   r   rT   r'   r   r   r   r   r   r   r:   rh   )
r
   r-   rz   r{   r   r   r   r   r   r   r   r   r   r   	  s*   





"z&test_Sequence_alignment.<locals>.childr	   Nr|   r   rW   r   r   r   test_Sequence_alignment  s   r   c                 C   r/   )8Test parser about sequences that do not move the cursor.c                 S   s  ddl m} t| d}d|d|ksJ d|d|ksJ d||d|ks)J t|j||j|ks6J t|j||j|ksCJ t|j||j|ksPJ t|j||j|ks]J t|j	||j	|ksjJ t|j
||j
|kswJ |jrt|j||j|ksJ t|j||j|ksJ t|j||j|ksJ d|jfD ]}t||}||||}||ksJ qt|j||j|ksJ t|j||j|ksJ t|j||j|ksJ t|j||j|ksJ t|j||j|ksJ |j|jfd S )Nr   measure_lengthr	   r1   xyzzyi)r$   r   r   rM   rT   rE   	clear_bol	clear_eosr9   redciviscvvisr>   r@   number_of_colorsr   normal_cursorhide_cursorsaveitalicstandout
_wont_move)r
   r   r   _numr   r   r   r   r   r   %  s4   

z.test_sequence_is_movement_false.<locals>.childNr   rW   r   r   r   test_sequence_is_movement_false#     
 r   c                 C   r/   )r   c                 S   s  ddl m} t| d}|jrt|||jd jrJ |jr+t|||jd jr+J |jr;t|||jd jr;J |jrKt|||jd jrKJ |j	r[t|||j	d jr[J |j
rkt|||j
d jrkJ |jr{t|||jd jr{J |jrt|||jd jrJ |jrt|||jd jrJ |drt|||dd jrJ |jrt|||jd jrJ |jrt|||jd jrJ |jrt|||jd jrJ |jrt|||jd jrJ d S d S )Nr   
iter_parser	   r   )r$   r   r   rE   next	will_mover   r   r9   r   r   r   r>   r@   r   r   r   r   r   r
   r   r   r   r   r   r   J  s@   

z+test_termcap_will_move_false.<locals>.childNr   rW   r   r   r   test_termcap_will_move_falseH  r   r   c                 C   r/   )z2Test parsers about sequences that move the cursor.c                 S   s  ddl m} t| d}t|dd||dd|ksJ t|d||d|ks/J |jr?t|j||j|ks?J |jrOt|j||j|ksOJ |jr_t|j||j|ks_J |jrot|j||j|ksoJ |j	rt|	d||	d|ksJ |j
rt|
d||
d|ksJ |jrt|j||j|ksJ |jrt|j||j|ksJ |jrt|j||j|ksJ d S d S )Nr   r   r	   b   L   6   M  )r$   r   r   rT   movecud1cub1cuf1cuu1rK   rM   rD   restoreclearr
   r   r   r   r   r   r   q  sF   







z-test_sequence_is_movement_true.<locals>.childNr   rW   r   r   r   test_sequence_is_movement_trueo  s   
r   c                 C   r/   )z1Test parser about sequences that move the cursor.c                 S   s^  ddl m} t| d}t|||ddd jsJ t|||dd js*J t|||jd js7J t|||jd jsDJ t|||jd jsQJ t|||j	d js^J |
drrt|||
dd jsrJ |drt|||dd jsJ t|||jd jsJ t|||jd jsJ t|||jd jsJ d S )	Nr   r   r	   r   r   r   r   r   )r$   r   r   r   r   r   r   r   r   r   rK   rM   rD   r   r   r   r   r   r   r     s   
 

z*test_termcap_will_move_true.<locals>.childNr   rW   r   r   r   test_termcap_will_move_true  s   
r   c                  C   s   t dd } | dd dS )z;Test parsers about sequences received from foreign sources.c                 S   s0   ddl m} t| d}|d|tdksJ d S )Nr   r   r	   z[m)r$   r   r   rT   r   r   r   r   r     s   
z%test_foreign_sequences.<locals>.childansir	   Nr   r   r   r   r   test_foreign_sequences  s   
r   )rP   rx   rs   ru   re   r%   blessed.tests.accessoriesr   r   r   r   r   pytestrb   r   r.   rX   ro   r}   r   r   r   r   r   r   r   r   r   r   r   <module>   s,   	 %' 