python (3.12.0)

(root)/
lib/
python3.12/
test/
__pycache__/
test_curses.cpython-312.opt-2.pyc

͑eddlZddlZddlZddlZddlZddlZddlZddlmZddl	m
Z
mZmZm
Z
mZddlmZe
dedZeded	ddlZdZd	Zd
Zej.j1dZdZej6exsed
k(dezej6ej8dk(dGddej:ZGddej:ZGddej:Z dZ!Gddej:Z"e#dk(rejHyy#e$rYwxYw)N)	MagicMock)requiresverboseSaveSignalscpython_onlycheck_disallow_instantiation)
import_modulecurseszcurses.asciizcurses.textpadcPtjtt|d|zS)Nzrequires curses.%s)unittest
skipUnlesshasattrr
)names D/BuggyBox/python/3.12.0/bootstrap/lib/python3.12/test/test_curses.pyrequires_curses_funcrs&wvt43d:<<cfd}|S)NcFtjfd}|S)Nczt|jstjdz|g|i|y)Nzrequires curses.window.%s)rstdscrrSkipTest)selfargskwargsrtests   rwrappedz:requires_curses_window_meth.<locals>.deco.<locals>.wrapped"s:4;;-''(Cd(JKK'''r	functoolswraps)rrrs` rdecoz)requires_curses_window_meth.<locals>.deco!s%			(
	(r)rr s` rrequires_curses_window_methr" sKrcBtjfd}|S)Nctjs|jdtj|g|i|y)Nrequires colors support)r

has_colorsskipTeststart_color)rrrrs   rrz requires_colors.<locals>.wrapped,s:  "MM34T#D#F#rr)rrs` rrequires_colorsr)+s%__T$$
NrTERMiunknownz*$TERM=%r, calling initscr() may cause exitcygwinz!cygwin's curses mostly just hangsceZdZedZdZeddZeddZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdZdZdZdZdZeddZdZdZdZeddZeddZdZdZdZd Z d!Z!d"Z"d#Z#d$Z$d%Z%ed&d'Z&d(Z'd)Z(d*Z)d+Z*ed,d-Z+ed.d/Z,ed0d1Z-d2Z.d3Z/d4Z0d5Z1d6Z2e3d7Z4e3d8Z5d9Z6e3d:Z7e3d;Z8e3d<Z9ed=e3d>Z:d?Z;ed@dAZ<edBdCZ=edDdEZ>edDdFZ?edDdGZ@eAedDdHZBedIdJZCedKdLZDedMdNZEdOZFdPZGedQeHjeJeKdRdSdTkdUdVZLdWZMdXZNeddYZOyZ)[
TestCursesctr#tdttjdtj
j
}tj|y)NzTERM=Tfileflush)fd)	rprinttermsysstderr
__stdout__filenor
	setupterm)cls	stdout_fds  r
setUpClasszTestCurses.setUpClass>s=E$.szz>NN))+	I&rcvd|_tj|_tjj	}tjjstj|}|jt
j||jt
j||tjjr&tj}tj|_n1	tddd}|j|jd|_tj|j	|t|_|j j#|j|j j$t&r_|jStj(j+tj,j+t/|jdt1j2|_|jrRt1j6|jt0j8|jt0j:|j4j=y#t$r"tjdd}d|_YwxYw)	NTz/dev/ttywbr)	buffering)moder@Fr0)isattyr6r8outputr9osdup
addCleanupclosedup2
__stderr__openOSErrortempfile
TemporaryFilersave_signalssaverestorerr7r2stdoutr4r
initscrrsavettyendwinresettyerase)rr<dup_fdtmps    rsetUpzTestCurses.setUpGsnnNN))+	~~$$&VVI&FOOBHHf-OOBGGVY7~~$$&nn!nn	(z41=C		*"GGCJJL),'M ))112t{{.JJJJt{{$/nn&;;NNOOFMM*OOFNN+1(
#00daHC"'DK
(s4J

'J87J8filterc,tjyN)r
rZrs rtest_filterzTestCurses.test_filterws
	

ruse_envcXtjdtjdy)NFT)r
r_r]s rtest_use_envzTestCurses.test_use_env}s	utrc	tjdd}|j|jd|j|j	d|j|jdtjdddd}|j|jd|j|j	d|j|jd	|j
d
d}|j|jd|j|j	d
|j|jd|j
ddd
d}|j|jd|j|j	d
|j|jd|jdd
}|j|jd|j|j	d|j|jd|jdddd
}|j|jd|j|j	d|j|jd|jdd|j|jd|j|j	d|j|jd	|j|jd|j|j	d
|j|jd|j|jd|j|j	d|j|jd|jdd|j|jd|j|j	d|j|jd|jdd|j|jd|j|j	d|j|jdy)N
rrrg)rcrd)rirc)rdrh)rjrkri)	
))rirj)rq)rsrtrrm)rrm)rirm)
r
newwinassertEqualgetbegyxgetparyxgetmaxyxsubwinderwinmvwinmvderwin)rwinwin2win3s    rtest_create_windowszTestCurses.test_create_windowssmmmAr"021mmBAq)022zz!Q&1&1'2zz!RA&&1&1'2zz!Q&1&1'2zz!RA&&1&1'2		!Q022&1&1'2&1&1'2

a&1&1'2

a&1&1'2rcl|j}|jdddd}|jdd|jdd|j|j	d|j|j	d|j|j|j	d	y)
Nrdrhrircrmrprl)rirp)rprn)rrzmovervgetyx	cursyncup)rrr~s   rtest_move_cursorzTestCurses.test_move_cursorsmmBAq)AqA0f-

0rc|j}|j|j|jd|j	|j|jd|j|j|jd|j	|j|jd|j|j|jd|j
dd|j|jdd|j|jdd|j|jd|j
ddd|j|jdd|jdddd}|jddd	d
}|j	|j|j|j|jd|j|jd|j	|j|j|j|j|jdt|drtjjds|j|jd
D]d}|j||j!d|j|j||j|j|fyyy)NFTrcrirsrmrdrhrjrksyncoksunos)FTa)rrefreshassertIs
is_wintouchedtouchwin
untouchwin	touchlineis_linetouchedrzsyncupsyncdownrr6platform
startswithraddch)rrr~rrs     rtest_refresh_controlzTestCurses.test_refresh_controls~

f**,e4

f**,d3

f**,e4

f**,d3

f**,e4	A

f++A.5

f++A.5

f**,d3Au%

f++A.6mmBAq)zz!RA&




c'')40

f**,d3	



d((*D168$S\\-D-DW-MNN'
>F#

3

c//16:

f224f=	
>.N$rc|j}|j}|j|jdd|j	d|j	d|j	dd}	|j	||j	dtj|j	ddd|j	dddtj|j|jd	|j|jdd|j!d|j!d|j!d|j
t
tf5|j!d
ddd|j!dtj|j|jdy#t
$r%|j
t
|j|Ymt$r:|j|}|jt|dt|YwxYw#1swYxYw)NrAAA€rmrirjTuĔF)rencodingrrrUnicodeEncodeErrorassertRaisesencode
OverflowErrorassertNotEquallenreprr
A_BOLDrrechochar)rrrcencodeds     rtest_output_characterz TestCurses.test_output_characters??AqSTR	@LLO	S&--(Q3Q3

.

f**,d3	Aq


 2MB
C	&
OOH%
	&	V]]+

f**,e41"	F0!((HE	@hhx(GGag?	@	&	&s$1G'H4*H1/>H10H14H=c	|j}|j}|j|jfD]}|j	|j
5|j
dd|d|dd}	|||dtj|ddd|dddtjddd|j|jfD]}|j	|j
5|j
dd|dd|d	dd
}	||d|dd|ddtj|dddd|ddddtjdddy#t$r%|jt|j|Y)wxYw#1swYxYw#t$r$|jt|j|YwxYw#1swYxYw)Nrabcdsabcduàßçđrmrirj1234s1234u١٢٣٤rc)rraddstrinsstrsubTest__qualname__rrrrr
raddnstrinsnstr)rrrfuncss     rtest_output_stringzTestCurses.test_output_strings??]]FMM2	2Dd//0
2Aq!VW
NGVV]]+Q6"Q66==1
2
2	2^^V^^4
	5Dd//0
5Aq!VQWa .NAJVQVQ

.Q61%Q61fmm4
5
5
	5*N%%&8!((HMN
2
2,*N%%&8!((HMN
5
5sa%F*5E9=:F*7'G'	F7(AG'9*F'#F*&F''F**F4	7*G$!G'#G$$G''G1	c|j}dD]}|j|5|jt|j||jt|j
|d|jt|j||jt|j|ddddy#1swYxYw)N)zasa)argrm)rrr
ValueErrorrrrr)rrrs   r&test_output_string_embedded_null_charsz1TestCurses.test_output_string_embedded_null_chars;s"	FC#&
F!!*fmmSA!!*fnnc1E!!*fmmSA!!*fnnc1E	
F
F	F
F
FsBB66B?	c|j}|jdddtj|j	dd|j|j
dtjz|j|j
dddtjz|j	dd|j|jddd|j|jdddd	|j|jdd
ddd|j|jdd
dd|jt|jd
|jt|jdd
d
y)NrrmABCDrrjCrss ABCD s ABrirpsBCD )
rrr
rrrvinchinstrrrrrs  rtest_read_from_windowz TestCurses.test_read_from_windowEs+

aFFMM2AqV]](:;Q*B,>?Aq+Y7a!,f5a+BQ/9aA.8*fllB7*fllAq"=rctjdddd}ddddD]}tj||j|j	ddd|j|jd	|j|j	dd
d|j|jd|j|j	d
|j|jd|j|j	d|j|j	dy)Nrcrrrizspam
rgrjrms)rjrmrpp)rjrpamrd)r
ruungetchrvgetchrrr~rs   r
test_getchzTestCurses.test_getchUsmmAr1a($B$	ANN1	1a'2f-1a'2f-g.f-g.h/rctjdddd}tj|jtj|jt|jd|jt|jdddddddD]}tj||j|jdddd	|j|jdd
d|j|jdddd
|j|jdd
d|j|jddd|j|jdd
d|j|jdd|j|jdd
d|j|jd|j|jdd
dy)NrcrrriiprjzLorem
ipsum
dolor
sit
amet
rgrmsLors Lo         rdsipsums Lo  ipsum  sdolors     dolor  ssissi   dolor  sametsamet dolor  )r
ruechorFnoechorrgetstrrrvrrs   rtest_getstrzTestCurses.test_getstrdsmmAr1a(


&*cjj$7*cjj!Q=4DbD9	ANN1	Aq!,e41a/:Aq"-x81a/:Aq)841a/:A.1a/:w/1a/:rcptjdddd}t||jdd|j	|j|j
ddjd|j|j
ddjd|jdd	|j|j|j
ddjd
|j|j
ddjd|j|jfD]t}t|||j|j
ddjd|j|j
ddjdvy)NrcrhrirrqsLorem iprmdolor sit amet,rjsLorr)r
rulorem_ipsumrclrtoeolrvrrstripclrtobotrVclear)rr~rs   r
test_clearzTestCurses.test_clearzsFmmAr1a(CA1a//1;?1a//13EFA1a//16:1a//137YY		*	<DFSYYq!_335s;SYYq!_335s;		<rctjdddd}t||jdd|j	|j|j
ddd|j	dd|j|j
ddd|jdd|j|j|j
ddd|j|j
ddd	|j|j
ddd
|j|j
ddd|j|j
d
dd|jdd|j|j|j
ddd|j|j
ddd|j|j
ddd	|jt||jdd|jd|j|j
ddd|j|j
ddd|j|j
ddd|j|j
ddd|jt||jdd|jd|j|j
ddd|j|j
ddd
|j|j
ddd|j|j
dddy)NrcrhrirsLoem ipsum     rksLoem ipum      rmsconsectetur    adipiscing elitrjssed do eiusmod rp               sLorem ipsum    rr)r
rurrdelchrvrdeletelninsertlnrinsdellnrr~s  rtest_insert_deletezTestCurses.test_insert_deletesmmAr1a(CA		1a*<=		!Q1a*<=A1a*<=1a*<=1a*<=1a*<=1a*<=A1a*<=1a*<=1a*<=		CAQ1a*<=1a*<=1a*<=1a*<=		CAR1a*<=1a*<=1a*<=1a*<=rcFtjdddd}t||jd|j	|j|j
ddd|j	d|j|j
ddd|j	d|j|j
ddd	|j|j
ddd	|j|j
d
dd|jdy)NrcrhriTrrrrrjF)r
rurscrollokscrollrvrrs  rtest_scrollzTestCurses.test_scrollsmmAr1a(CT

1a*<=

1
1a*<=

21a*<=1a*<=1a*<=Urc.tjdddd}|jtj|j	tj|jtj|j
|jy)Nrcrhri)r
ruattronrattroffattrsetstandoutstandendrs  rtest_attributeszTestCurses.test_attributessXmmAr1a(

6==!FMM"FMM"rchgatc>tjdddd}|jddd|jddd|jdd|j	tj
|j
|jdd	d
|j
|jdddtj
z|j
|jddd
tj
z|jdd|j	dtj|j
|jddd|j
|jdddtjz|j
|jdddtjz|j
|jddd|j	ddtj|j
|jddd|j
|jdddtjz|j
|jddd
tjz|j	ddd	tj
|j
|jdddtjz|j
|jdddtj
z|j
|jdddtj
z|j
|jdddtjz|j
|jddd
tjzy)NrcrhrirLorem ipsumrjzdolor sit ametrqrkrr rmLoerprlrrdrrt)
r
rurrrA_BLINKrvrrA_UNDERLINErs  r
test_chgatzTestCurses.test_chgatsmmAr1a(

1a'

1a)*A		&..!!Q1!Q6>>)AB!R'FNN*BCA		!V]]#!Q1!Q6==)@A!Q6==)@A!Q1		!Q**+!Q1!Q63E3E)EF!R'F4F4F*FG		!Q6>>*!Q63E3E)EF!Q6>>)AB!R'FNN*BC!R'F4F4F*FG!R'F4F4F*FGrctjdddd}|jddd|j|j	d|jd|j
|j	d|jd	|j
|j	d
|jd|j
|j	d|jd|j
|j	d|jd
tj|j
|j	d
tjz|j
|jddd|j
|jddd|jd|jd|j
|j	d|j
|jddd|j
|jddd|jd
tj|j
|j	d
tjz|j
|jdddtjz|j
|jddd
tjzy)Nrcrhrirr)rr__##rr#r)
r
rurassertIngetbkgdbkgdsetrv	A_REVERSErbkgdrs  rtest_backgroundzTestCurses.test_backgroundsmmAr1a(

1a'

ckkmW-	C0D0B+A+C))*&2B2B(BC!Q1!Q1A	
0!Q1!Q1f&&'&2B2B(BC!Q63C3C)CD!Q63C3C)CDrc	tjdddd}t|tjdddd}tdD]}|j	|dd	|j||j
|jddd
|j
|jddd|j
|jd
dd|j
|jddd|j||j
|jddd|j
|jddd|j
|jd
dd|j
|jddd|j|dddd
dd|j
|jddd|j
|jddd|j
|jddd|j|dddd
dd|j
|jddd|j
|jddd|j
|jdddy)Nrcrjrprkrsr_________________ssectetur_________rmspiscing_elit,____ris_do_eiusmod______s_________________ssectetur       __spiscing elit,  __s do eiusmod    __rts__r_sit_amet_____s__ectetur________s__r sit amet_____s__ectetur   _____)	r
rurrangeroverlayrvr	overwrite)rsrcwindstwinis    rtest_overlayzTestCurses.test_overlays+q"a+Fq"a+q	(AMM!Q'	(	va+-ABa+-ABa+-ABa+-AB a+-ABa+-ABa+-ABa+-ABvq!Q1b1a+-ABa+-ABa+-ABAq!Q3a+-ABa+-ABa+-ABrctjdddd}|j|jdd|j	|jtjy)Nrcrhrirm)r
runoutrefreshredrawln	redrawwinrdoupdaters  rtest_refreshzTestCurses.test_refresh-sJmmAr1a(Q


rresizectjdddd}|jdd|j|j	d|jdd|j|j	dy)Nrcrhrirp)rpr)rcrh)r
rurrvryrs  rtest_resizezTestCurses.test_resize5s^mmAr1a(

1b1

1b1renclosectjdddd}|j|jddd|j|jddd|j|jddd|j|jdd	d|j|jd
d	d|j|jdddy)NrcrhriTrmFrprsrkr)r
rurrrs  rtest_enclosezTestCurses.test_enclose=smmAr1a(

ckk!Q'.

ckk!Q'/

ckk!Q'/

ckk!R($/

ckk!R(%0

ckk!R(%0rctjdddd}|jdddtj5}|j|~|j
dtj|}|j|jd|j|jd|j|jddd	dddy#1swYyxYw)
Nrcrrrmrirrrl)rcrrs Lorem ipsum)r
rurrLrMputwinseekgetwinrvrwryr)rr~fs   rtest_putwinzTestCurses.test_putwinGsmmAr1a(

1a'

#
#
%	?JJqM
FF1I--"CS\\^V4S\\^W5SYYq!_o>	?	?	?s
BC$$C-c
v	tjdddd}|jdddddd	d
d|j|j	ddd
|j|j	ddd|j|j	ddd|jdddddddd|jddddddd d!|jt|jdddddgd d!
|jt|jddddddd d!d"|jt|jddddddd d!d"|jddddddd |jdddddd|jddddd|jdddd|jddd|jdd|jd|j|jd#d$|j|j	ddd%d&|j|j	ddd'|j|j	ddd%d&|jd(d)|jdd|jt|jddd|jt|jd|j|jdd|jdd|j|j	ddd*d+|jdd|jd,d|jddtj|jdddd|jddddtj|jdd|jd-d.|jd/d.|jd0d.|jd-d.tj|jddd-d.|jddd1dtj|j|jddd2tjz|j|jddd2tjz|j|jd.dd0y)3Nrcrdri|!-r+\r/rs
+--------\rms
|        !rps
#________/|!-_+\r/rBrDEFGHI:~rqs~~~~~~~~s
:        ::~rks ----- -rrjar;;)r
ruborderrvrr	TypeErrorboxrhlinervline
A_STANDOUTrrs  rtest_borders_and_linesz!TestCurses.test_borders_and_linesSsmmAr1a(

3S#c3	(1a.91a-81a-8

4tTd	,

2r2rr2r	#)SZZb"b"b"b	:)SZZb"b"b"b"	>)SZZb"b"b"b"	>

2r2r2r2.

2r2r2r*

2r2r2&

2r2r"

2r2

2r

2

S1a+[91aM:1a+[9dB)SWWb"b9)SWWb1	A		#q1a+Z8		$		"a		#q&--(		!QQ		!QQ

.A		#q		$		"a		#q&++,		!QQ		!QQ 1 12!Q63D3D)DE!Q63D3D)DE!Q1rc2|jtjdd|jtjdd|jtjdd|jtjdd|jtjdd|jtjdd|jttjd|jttjd	|jttjd
|jttjd|jt
tjdy)
Nrrr
s^J
rdrsABAB)rvr
unctrlrrCrr]s rtest_unctrlzTestCurses.test_unctrlst,d3s+T2r*D1u-u5t,e4r*E2)V]]C8)V]]E:)V]]B7)V]]D9->rcf|js|jd|jtjdtj
|jtjdtj|jtjdy)Nrequires terminalFT)rBr'rr
isendwinrTrr]s rtest_endwinzTestCurses.test_endwinsh{{MM-.

foo'/



foo'.

foo'/rc|jtjdt|j	tjdd|j	tjdd|jtj
dt|j	tj
dd|j	tj
dd|jtjdttdf|jtjd|jtjdtjd}|m|j|ttj|dtj|d}|j|ttj|tjdy)	Nhccolsrgcrrcudrisabc
)assertIsInstancer
	tigetflagintrvtigetnumtigetstrbytestypeassertIsNonetparmputp)rrYcud_2s   r
test_terminfozTestCurses.test_terminfosWf..t4c:))&126))$/4foof5s;.3.3food3eT$Z5HI&//$/0&//&12ooe$?!!#u-LLa LLa(E!!%/KKHrctjdtjtj|j	tj
dtjdtjddy)NrmFd2)r
delay_outputflushinprrrSnapmsnewpadr]s rtest_misc_module_funcsz!TestCurses.test_misc_module_funcssSA

foo'/S

b"rc|jtjt|jtjt|jtj
t|jtjt|jtjt|jtjttj}|j|t|jt|dtj}|j|t|jt|dyNrm)rZr
termnamer_longnamebaudrater\has_icboolhas_il	termattrskillcharrvr	erasechar)rrs  rtest_env_querieszTestCurses.test_env_queriessfoo/7foo/7foo/5fmmot4fmmot4f..0#6OOa'Q#a'Q#rc|j}|jd|jd|jd|jd|jd|jdt	|dr"|jd|jd|j
d|j
d|jd|jd|jddtjtjdtjdtjy)NTFimmedokrcrd)rclearokidcokidlokrr{leaveokr	setscrregr
nonlnlrs  rtest_output_optionszTestCurses.test_output_optionsstuTUUT69%NN4 NN5!tuB
		$		%		rc|j}|jrtjtjtjdtjdtj
dtj
dtjtjdtjdtjtjtjtjdtjdtjdtjd|jd|jdtjdtjd|jd|jdtjtjdtjdtj|j!d|j!d|j#d|j#d|j#dy)NFTrmrgrrc)rrBr
nocbreakcbreak	intrflushrawnorawrr	halfdelaykeypadmetanodelay	noqiflushqiflush	notimeouttimeoutrs  rtest_input_optionszTestCurses.test_input_optionss;;OOMMOMM% MM$T"U#JJLJJuJJtLLN


ED

d

eDEtuturqqr	typeaheadctjtjj	tjdy)Nrg)r
rr6	__stdin__r9r]s rtest_typeaheadzTestCurses.test_typeahead!s+--/0rc|js|jdtjtjy)NrR)rBr'r

def_prog_modereset_prog_moder]s rtest_prog_modezTestCurses.test_prog_mode&s.{{MM-. rctjdtjdtjy	tjy#tj$r|j	dYywxYw)Nbelflashz
beep() failed)r
r^beeperrorr'r]s r	test_beepzTestCurses.test_beep,sVOOE".w'3KKM
/
<<
/

o.
/A$A=<A=ctjdtjdtjy	tjy#tj$r|j	dYywxYw)Nrrzflash() failed)r
r^rrr'r]s r
test_flashzTestCurses.test_flash6sWOOE".w'3LLN
0<<
0

./
0rcdD]F\}}tj|tj|1	tj|Hy#tj$rY_wxYw)N))rcivis)ricvvis)rmcnorm)r
r^curs_setr)rviscaps   r
test_curs_setzTestCurses.test_curs_set@sYB	HCs#/$OOC(	||sA

A#"A#get_escdelayctj}|j|ttjd|jtjdtj|y)N)r
rrZr\set_escdelayrv)rescdelays  r
test_escdelayzTestCurses.test_escdelayJsU&&(h,B,,.3H%rget_tabsizectj}|j|ttjd|jtjdtj|y)Nrp)r
rrZr\set_tabsizerv)rtabsizes  rtest_tabsizezTestCurses.test_tabsizeRsU$$&gs+1++-q17#rgetsyxctj\}}|j|t|j|ttjdd|jtjdy)Nrprc)rprc)r
rrZr\setsyxrv)ryxs   rtest_getsyxzTestCurses.test_getsyxZsU}}1a%a%

a&1rc0dtjdddddfS)NrgrNr
COLORSr]s r
bad_colorszTestCurses.bad_colorsbsFMM:uj%OOrc*tjdddfS)NrrrNrr]s rbad_colors2zTestCurses.bad_colors2es

ueU33rcy)N)rgrrrrrNr!r]s r	bad_pairszTestCurses.bad_pairshs@rc|jtjt|jtjtyr\)rZr
r&rtcan_change_colorr]s rtest_has_colorszTestCurses.test_has_colorsks4f//148f557>rc4tjs|jdtjtrYtdtjtjtdtjtjyy)Nr%z	COLORS = )r1zCOLOR_PAIRS = )
r
r&r'r(rr4rr6r7COLOR_PAIRSr]s rtest_start_colorzTestCurses.test_start_colorosd  "MM34Ifmm_-CJJ?N6#5#5"67cjjIrcX|jtjtjdtjdtjdz
}tj||jD]'}|j
ttj|)y)Nrrrrrm)rvr

color_contentCOLOR_BLACKrrrr)rmaxcolorcolors   rtest_color_contentzTestCurses.test_color_contentws}--f.@.@A9MQ==1$X&__&	GEj&*>*>F	Grc	tjs|jdtjd}	tjdg||jtjdg|tjdddd|jtjddtjdddd|jtjddtjdz
}tj|}tj|g||jtj|g|tj|ddd|jtj|d	|jD]*}|jttj|ddd,d
D]z}|jttjd|dd|jttjdd|d|jttjddd||y#tj
$r|jdYwxYw)Nzcannot change colorrz)cannot change color (init_color() failed)r)rrrrm)rrr)rgi)r
rr'r
init_colorrrFrvrrrr)roldrrcomps     rtest_init_colorzTestCurses.test_init_colors&&(MM/0""1%	Ga&#&	))13s3!Q1%--a0)<!T4.--a02DE==1$""8,()S)))8:c:(AsD1--h7H__&	MEj&*;*;UAq!L	M	LDj&*;*;QaKj&*;*;Q4Kj&*;*;Q1dK	L#||	GMMEF	GsI$I0/I0ctj}ttdrtjr|dtjzdzz
}tjrdtj
cxkrdkrnnt
|t}	tj|dz
dd|S|S#t$rtj}Y|SwxYw)Nncurses_versionrirm)rsrm)rsrir)
r
rrhas_extended_color_supportrrmin	SHORT_MAX	init_pairr)r
pair_limits  rget_pair_limitzTestCurses.get_pair_limits''
6,-002a

o11
557!7!7@&@ Y7

0  aA6z
0#//

0sB--C
	C
cttdsC|jtjdtjtj
ftjd|j
dz
}|dkDrtj||jD]'}|jttj|)y)Nuse_default_colorsrrm)
rr
rvpair_contentCOLOR_WHITErrrrr)rmaxpairpairs   rtest_pair_contentzTestCurses.test_pair_contentsv34V003$00&2D2DE
GA%%'!+Q;(NN$	EDj&*=*=tD	Erctjd}tjdg||jtjdg|tjddd|j	tjddtj
dz
}tjd|d|j	tjd|dftjdd||j	tjdd|f|j
dz
}|dkDr<tj|dd|j	tj|d|jD])}|jttj|dd+|jD]P}|jttjd|d|jttjdd|Ry)Nrmrre)r
rrrFrvrrrrrr)rrrrrrs      rtest_init_pairzTestCurses.test_init_pairs!!!$!S!((!2c2Aq!,,Q/8==1$Ha(,,Q/(A?Ax(,,Q/!X?%%'!+Q;Wa+V0096BNN$	HDj&*:*:D!QG	H%%'	IEj&*:*:AuaHj&*:*:Aq%H	IrcdD]s}tj|}|jtj||||jtj|tjz|u|jtjdd|jtjddy)N)rrmrr)r

color_pairrvpair_numberr)rrattrs   rtest_color_attrszTestCurses.test_color_attrss	MD$$T*DV//5tTBV//v}}0DEtL	M	
**1-q1++A.2rrc\tjd}	tj|jtjdd|j
|tjtjfddgy#tj$r|j	dYwxYw)Nrz1cannot change color (use_default_colors() failed)rfre)	r
rrrr'rvrrr)rrs  rtest_use_default_colorsz"TestCurses.test_use_default_colorss!!!$	O%%'	
,,Q/:

cV//1C1CDhPVWX||	OMMMN	OsB$B+*B+c|jtjdd|jtjdd|jtjdd|jtjdd|jttjd	|jtjd
ty)Nrrros^Ms^?rs^@rg)rvr
keynamerrrZr_r]s rtest_keynamezTestCurses.test_keynames+T2+U3,e4*E2*fnnb9fnnS159rhas_keyc.tjdy)Nro)r
rr]s rtest_has_keyzTestCurses.test_has_keysrrgetmousectjtj\}}|dk(r|jdtjdtj
ddddtjtj}y)Nrzmouse stuff not availablerd)r
	mousemaskBUTTON1_PRESSEDr'
mouseinterval
ungetmouser)r	availmaskoldmaskms    r
test_getmousezTestCurses.test_getmousesg%//0F0FGG>MM56R !Q1f&<&<=OOrpanelctjdd}tjj|}|j	tjj
d5|j
dddy#1swYyxYw)Nrdz!userptr should fail since not set)msg)r
rur	new_panelrruserptr)rwps   rtest_userptr_without_setz#TestCurses.test_userptr_without_setsgMM"b!LL""1%


v||11#FH	
IIK			s!A;;Bc\tjdd}tjj|}t	}tj|}tdD]}|j||jd|jtj||dy)Nrdrgzset_userptr leaked references)
r
rurrobjectr6getrefcountr
set_userptrrv)rr
robjnrefsrs      rtest_userptr_memory_leakz#TestCurses.test_userptr_memory_leak	sMM"b!LL""1%h$s	A
MM#		


d-u8	:rctjdd}tjj|Gfdd}j	|j	dy)NrdceZdZfdZy)+TestCurses.test_userptr_segfault.<locals>.Ac(jdyr\)r)rrs r__del__z3TestCurses.test_userptr_segfault.<locals>.A.__del__s!!$'rN)__name__
__module__rr)rsrrrs
(rr)r
rurrr)rr
rrs   @rtest_userptr_segfaultz TestCurses.test_userptr_segfaultsQMM"b!&&q)	(	(	!#
$rctjdd}tjj|}t	|t|y)Nrd)r
rurrrr`)rr
rs   rtest_disallow_instantiationz&TestCurses.test_disallow_instantiation s6
MM"b!&&q)$T4;7ris_term_resizedctjtj}}|jtj||d|jtj|dz
|dz
dy)NFrmT)r
LINESCOLSrr!rlinesrWs   rtest_is_term_resizedzTestCurses.test_is_term_resized(sQllFKKt

f,,UD95A

f,,U1Wd1f=tDrresize_termctjtjtj}}|dz
}|dz}tj|||jtj||jtj|tj|||jtj||jtj|yro)r
update_lines_colsr#r$r(rvrr&rW	new_linesnew_colss     rtest_resize_termzTestCurses.test_resize_term.s  "llFKKtAI	!89h/y1h/5$'u-d+r
resizetermctjtjtj}}|dz
}|dz}tj|||jtj||jtj|tj|||jtj||jtj|yro)r
r*r#r$r/rvr+s     rtest_resizetermzTestCurses.test_resizeterm<s  "llFKKtAI	!8)X.y1h/%&u-d+rc~tjd|j|jj	dtjd|j|jj	dtjd|j|jj	dy)NrrBrC)r
rrvrgetkeyr]s rtest_ungetchzTestCurses.test_ungetchJs}t++-s3s++-s3r++-s3rcbtjd|jjy)Ni)r
rrr5r]s rtest_issue6243zTestCurses.test_issue6243Rstr	unget_wchr)c)rcrqz.unget_wch is broken in ncurses 5.7 and earlierc
|j}|j}dD]}	|j|	t	j
||j}|j||t|}t	j
||j}|j||y#t$rYwxYw#t$r.}|jd|d|jd|Yd}~d}~wwxYw)N)réru􏿿z
unget_wch(z) failed with encoding z: )rrrrr
r9	Exceptionfailget_wchrvord)rrrcherrreadcodes       rtest_unget_wchzTestCurses.test_unget_wchVs??7	'B
		(#
8  $>>#DT2&r7DT">>#DT2&!	'&


8		#788
8s(B-B<-	B98B9<	C3$C..C3c&|j}ddl}|j}|j||j	t
5d|_ddd||_|j	t
5|`dddy#1swY1xYw#1swYyxYw)Nrrd)rcodecsrlookuprrC)rrrGrs    r
test_encodingzTestCurses.test_encodingns??

h


y
)	! FO	!"


y
)	 	 	 	!	!	 	 sA;/B;BBc|j}	tj|j}|j	||jjjdd}|jd|y#t
$rYFwxYw)NrKrz[y, x,])	rinspect	signaturerassertFalser__doc__splitr)rrrLhuman_readable_signatures    rtest_issue21088zTestCurses.test_issue21088ysw	))&,,7IY'$*<<#7#7#=#=d#CA#F 

i!9:		s0A99	BBctjdddd}tjj|d}|j	\}}|j|dz
|dz
|j
dy)NrcrhriT)insert_moder)r
rutextpadTextboxryr_insert_printable_char)rr~rDr&rWs     rtest_issue13051zTestCurses.test_issue13051sbmmAr1a(nn$$Sd$;llnt

57DF#""3'rN)Prrrclassmethodr=rYrr^rarrrrrrrrrrrrrr"rrrrrrr$rHrPrTrermryrrrrrrrrrrrrrrrr)rrrrrrrrrrrrrrr r'r.r1r6r8rskipIfgetattrr
rErIrQrWr!rrr.r.8s''.`(#$
)$%23h	1.>`$5L 5DF> 
0;,<((>T!)H*H<EBC:!*2+2!+1,1
?62p?00	$ <,\+&'!/0.)&*&-($)$(#2$2P4A?JGGLL:"
E
EII.33./Y0Y:)$%*%&'"#'"
:#
:'" # '"8#8+,E-E
-(,),,',(,4+&X__WV%6>GEG'G''*	 ;8!*(+(rr.cJeZdZeddZeddZdZy)	MiscTestsr*c@tjtjtj}}dxt_t_tj|j	tj||j	tj|y)Nr)r
r*r#r$rvr%s   rtest_update_lines_colsz MiscTests.test_update_lines_colssa  "llFKKt%&&v{  "u-d+rrctj}trtdtjd|j	|ddt
|j
t|d|j	|dt|j	|dt|j	|dt|j	|jt|j	|jt|j	|jt|j
|d|j|j
|d|j|j
|d|j|j|jd|j|jd|j|jdy)Nzncurses_version = T)r2rjrrmri)
r
rrr4rZtuplervrr\majorminorpatchassertGreaterEqual)rvs  rtest_ncurses_versionzMiscTests.test_ncurses_versionsM""&v'='=&>?tLadE*Q#adC(adC(adC(aggs+aggs+aggs+1qww'1qww'1qww'+++rcXtj}|j|tyr\)r
rrZrt)rrs  rtest_has_extended_color_supportz)MiscTests.test_has_extended_color_supports --/a&rN)rrrrr^rfrir!rrr\r\s9-.,/,+,,-,&'rr\c0eZdZdZdZdZdZdZdZy)	TestAsciictjjD],}|jt	tj||.yr\)r
asciicontrolnames
assertTruer)rrs  rtest_controlnameszTestAscii.test_controlnamess4LL--	?DOOGFLL$7>	?rcPfd}tdD]ttg}|tjj
|j|tjj|j
|tjj|j|tjj|j|tjj|j|tjj|j|tjjdk|tjjdk\|tjjdk|tjjdkxsdk(|tjjdv|tjj dcxkxrdknc|tjj"dcxkxrdknc|tjj$t&j(v|tjj*t&j,vdd	dt.j0t.j0d
zfD]j3tjjj3tjj
j3tjjj3tjjj3tjjj3tjjj3tjjj3tjjj3tjjj3tjjj3tjj!j3tjj#j3tjj%j3tjj+j3tjjd	y)Ncj|5j||j||dddy#1swYyxYw)N)rAr)rrv)rexpectedrrrs  rcheckz$TestAscii.test_ctypes.<locals>.checksP.
4  a(3  a(3
4
4
4s1AArrrz 	~rrgrm)r
chrr_r
rmisalnumisalphaisdigitislowerisspaceisupperisasciiismetaisctrliscntrlisblankisgraphisprintispunctstringpunctuationisxdigit	hexdigitsr6
maxunicoderM)rrtbrrs`  @@rtest_ctypeszTestAscii.test_ctypess	4
s	@AAAqc
A&,,&&		4&,,&&		4&,,&&		4&,,&&		4&,,&&		4&,,&&		4&,,&&C0&,,%%qCx0&,,%%q2v.&,,&&B(:!s(;&,,&&U
3&,,&&Q
#
6&,,&&a37&,,&&V-?-?(?@&,,''f.>.>)>?%	@(b#s~~s~~a/?@	7AV\\11!45V\\11!45V\\11!45V\\11!45V\\11!45V\\11!45V\\11!45V\\0034V\\11!45V\\11!45V\\11!45V\\11!45V\\11!45V\\22156	7"	
,,R01rctjj}|j|dd|j|dd|j|tdtdy)NÁr)r
rmrvr@)rrms  r
test_asciizTestAscii.test_asciisV""v,sS)s6{+SX6rctjj}|j|dd|j|dd|j|dd|j|t	dt	dy)NJrK@)r
rmctrlrvr@)rrs  r	test_ctrlzTestAscii.test_ctrlsi||  cD)dT*cD)c#hT3rctjj}|j|dd|j|dd|j|t	ddy)NrKŠrr)r
rmaltrvr@)rrs  rtest_altzTestAscii.test_altsQllTF+S6*SX-rctjj}|j|dd|j|dd|j|dd|j|dd|j|dd|j|dd|j|d	d
|j|t	dd|j|t	dd|j|dd|j|d
d|j|t	dd|j|t	d
dy)Nrrr@ z^?rKz^Jrz^@rz!^Jrz!A)r
rmrOrvr@)rrOs  rrPzTestAscii.test_unctrl	s)$$c*c*c*c*.t,t,C)3/D	*D1/.F,e4F,d3rN)	rrrrprrrrrPr!rrrkrks!?+2Z74.4rrkcgd}|j\}}t|d|D]$\}}|j|d|d|||dz
k(z
&y)N)	rzdolor sit amet,consecteturzadipiscing elit,zsed do eiusmodztempor incididuntzut labore etzdolore magnazaliqua.rrm)ry	enumerater)r~textmaxymaxxrlines      rrrs]
DJD$T%4[)84

1a5tqD1H}5678rcBeZdZdZdZdZdZdZdZdZ	dZ
d	Zy
)TextboxTestc
ttj|_d|jj_d|jj_tjj|j|_	y)N)spec)rmrm)rdr)
rr
windowmock_winrreturn_valueryrTrUtextboxr]s rrYzTextboxTest.setUp-sP!v}}5
+1

(.6

+~~--dmm<rc	|jjtjj	|j}|jj
j
|jjj
d|j|jd|j|jd|j|j|jjy)NrmF)
r
reset_mockr
rTrUryassert_called_once_withrrvrSstripspacesralastcmd)rtbs  r	test_initzTextboxTest.test_init3s*

  "
^^
#
#DMM
2

668

44Q7/+"**%

  "rcZ	|jj|jjt	d|jj
j
t	d|jjt	d|jj
j
t	d|jjt	d|jj
j
t	d|jjy)Nrrr)rrr
do_commandr@rassert_called_withr]s rtest_insertzTextboxTest.test_insert>s3

  "C)

..s3x8C)

..s3x8C)

..s3x8

  "rc	|jj|jjtj
j|jjtj|jjtj
j|jjyr\)	rrrrr
rmBS
KEY_BACKSPACEDELr]s rtest_deletezTextboxTest.test_deleteIss(

  "0 4 45 0 01

  "rc	|jj|jjtj
|jjjdd|jjy)Nrmr)rrrrr
KEY_LEFTrrr]s rtest_move_leftzTextboxTest.test_move_leftRU*

  "0

--a3

  "rc	|jj|jjtj
|jjjdd|jjy)Nrmri)rrrrr
	KEY_RIGHTrrr]s rtest_move_rightzTextboxTest.test_move_rightYsW+

  " 0 01

--a3

  "rc	|jj|jjtj
|jjjdd|jjtj|jjjdd|jjy)Nrmrri)	rrrrr
rrrrr]s rtest_move_left_and_rightz$TextboxTest.test_move_left_and_right`s9

  "0

--a3 0 01

--a3

  "rc	|jj|jjtj
|jjjdd|jjy)Nrrm)rrrrr
KEY_UPrrr]s rtest_move_upzTextboxTest.test_move_upisU(

  "

.

--a3

  "rc	|jj|jjtj
|jjjdd|jjy)Nrirm)rrrrr
KEY_DOWNrrr]s rtest_move_downzTextboxTest.test_move_downprrN)rrrrYrrrrrrrrr!rrrr,s/=	#	#######rr__main__)%rrKrDrr6rLr
unittest.mockrtest.supportrrrrrtest.support.import_helperr	r
curses.panelImportErrorrr"r)environgetr5rrYrTestCaser.r\rkrrrmainr!rr<module>rs[	

#884
	
x	 
n
	<
zz~~f	T.TY.=DF)46`(""`(6F`(F#!'!!!'HU4!!U4p8"I#(##I#XzHMMO*		sD55D=<D=