a ze1*@sddlZddlmZddlZddlZddlmZmZmZmZm Z m Z m Z ddl m Z ddlmZGdddeZGdd d ejZGd d d eZGd d d eZGdddeZGdddeZGdddeZGdddeejZedkredS)N)support)Variable StringVarIntVar DoubleVar BooleanVarTclTclError) ALWAYS_EQ)AbstractDefaultRootTestcs$eZdZdZdZfddZZS)VardefaultFcsd|_t|dS)NT) side_effectsuperset)selfvalue __class__\/opt/bitninja-python-dojo/embedded/lib/python3.9/tkinter/test/test_tkinter/test_variables.pyrszVar.set)__name__ __module__ __qualname__Z_defaultrr __classcell__rrrrr sr c@seZdZddZddZdS)TestBasecCs t|_dSN)rrootrrrrsetUpszTestBase.setUpcCs|`dSr)rrrrrtearDownszTestBase.tearDownN)rrrrr rrrrrsrc@sdeZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ dS) TestVariablecGs|j|jjddg|RS)Ninfoexists)rZ getbooleancall)rargsrrr info_exists!szTestVariable.info_existscCs.t|j}|d||t|ddS)Nz ^PY_VAR(\d+)$)rr assertEqualgetZ assertRegexstrrvrrr test_default$s zTestVariable.test_defaultcCs2t|jdd}|d||dt|dS)N sample stringvarname)rrr(r)r*r+rrrtest_name_and_value)sz TestVariable.test_name_and_valuecCsL||dt|jdd}||d~t||ddS)Nr/r.) assertFalser&rr assertTruer gc_collectr+rrr test___del__.s zTestVariable.test___del__cCsd||dt|jdd}t|jdd}~t||d~t||ddS)Nr/namer5)r1r&rrrr3)rv1v2rrrtest_dont_unset_not_existing6sz)TestVariable.test_dont_unset_not_existingcCst|jdd}t|jdd}||||||t|jdd}|||t|jdd}|t|t||||tddi}|||||t||t t }| |j t|dd}|t|t||||dS)Nabcr6Zcbarr)rrZ assertIsNotr(ZassertNotEqualrr*typeobjectr tkinterTkZ addCleanupdestroy)rr7r8Zv3Zv4Vroot2Zv5rrr test_equalityBs$        zTestVariable.test_equalitycCs<|tt|jddWdn1s.0YdS)N{r6) assertRaises TypeErrorrrrrrrtest_invalid_name\s zTestVariable.test_invalid_namecCs|tt|jddWdn1s.0Y|t|jddWdn1sf0Y|t|jddWdn1s0Y|t|jddWdn1s0Y|t|jddWdn1s0YdS)Nzvarnamer6rsvarname)rD ValueErrorrr globalsetvarZsetvarrrrrtest_null_in_name`s , , , , zTestVariable.test_null_in_namecCs0t|j}||j|d||jdSNr)r rr1rrr2r+rrrtest_initializels   zTestVariable.test_initializecst|j}t|}gfdd}fdd}|d|}|d|}|t|d|fd|fg|g|d|d|d d fgg||d |d dfggt|}| d ||t||| t | ddWdn1s0Y|t||| d|d f|t||||d |d dfgg| d|||d|fg||gg~t |d |d|d d fgg~t |d|d dfgdS)Ncsd|dSNreadappendr%Ztracerr read_tracerwsz0TestVariable.test_trace_old..read_tracercsd|dSN)writerOrQrRrr write_tracerysz1TestVariable.test_trace_old..write_tracerrZwuspamrUr'wrN+eggsu)rrr*Ztrace_variabler(sortedZ trace_vinforr)Z trace_vdeleterDr gccollect)rr,vnamerSrVZcb1Zcb2r"rrRrtest_trace_oldrsN           ,   zTestVariable.test_trace_oldcst|j}t|}gfdd}fdd}|d|}|ddg|}|t|d|fd |fg|g|d |d|d dfgg||d|d dfggt|}| d||t||| t | dd Wdn1s0Y|t||||d|d dfgg| d|||d |fg||gg~t |d |d|d dfgg~t |d|d dfgdS) Ncsd|dSrLrOrQrRrrrSsz,TestVariable.test_trace..read_tracercsd|dSrTrOrQrRrrrVsz-TestVariable.test_trace..write_tracerrNrUunsetrM)rUrbrXr'r[)rrr*Z trace_addr(r]Z trace_inforr)Z trace_removerDr r^r_)rr,r`rSrVZtr1Ztr2r"rrRr test_tracesP         ,   zTestVariable.test_traceN)rrrr&r-r0r4r9rBrFrIrKrarcrrrrr!s  2r!c@s$eZdZddZddZddZdS) TestStringVarcCst|j}|d|dS)Nr')rrr(r)r+rrrr-s zTestStringVar.test_defaultcCs@t|jdd}|d||jdd|d|dS)Nr:r5rrrr(r)rHr+rrrtest_getszTestStringVar.test_getcCs@t|jdd}|d||jdd|d|dS)Nzabcdefr5zvaluerer+rrr test_get_nullszTestStringVar.test_get_nullN)rrrr-rfrgrrrrrdsrdc@s$eZdZddZddZddZdS) TestIntVarcCst|j}|d|dS)Nr)rrr(r)r+rrrr-s zTestIntVar.test_defaultcCs^t|jdd}|d||jdd|d||jdd|d|dS)NrCr5Z345iYz876.5il)rrr(r)rHr+rrrrfs zTestIntVar.test_getcCsVt|jdd}|jdd|ttf|Wdn1sH0YdSNr5r6r)rrrHrDrGr r)r+rrrtest_invalid_valueszTestIntVar.test_invalid_valueN)rrrr-rfrjrrrrrhsrhc@s,eZdZddZddZddZddZd S) TestDoubleVarcCst|j}|d|dS)Ng)rrr(r)r+rrrr-s zTestDoubleVar.test_defaultcCs@t|jdd}|d||jdd|d|dS)NGz?r53.45皙 @rrZassertAlmostEqualr)rHr+rrrrfszTestDoubleVar.test_getcCs^t|jdd}|d||jdd|d||jdd|d|dS)Nrlr5rmrnZ456iror+rrrtest_get_from_int s zTestDoubleVar.test_get_from_intcCsVt|jdd}|jdd|ttf|Wdn1sH0YdSri)rrrHrDrGr r)r+rrrrjsz TestDoubleVar.test_invalid_valueN)rrrr-rfrprjrrrrrksrkc@s,eZdZddZddZddZddZd S) TestBooleanVarcCst|j}||ddS)NF)rrassertIsr)r+rrrr-s zTestBooleanVar.test_defaultcCst|jdd}||d|jdd||d|jd|jrRdnd||d|jdd||d|jdd||ddS) NTr50F*ron)rrrrr)rH wantobjectsr+rrrrfszTestBooleanVar.test_getcCs|jrdnd}|jr dnd}t|jdd}|d||jd||d||jd||d||jd||d||jd||d ||jd|dS) Nru1rrsr5r6Trtrv)rrwrrr( globalgetvar)rtruefalser,rrrtest_set+s     zTestBooleanVar.test_setcCs|jrdnd}t|jdd}|t|dWdn1sJ0Y||jd||jdd|t | Wdn1s0Y|jdd|t | Wdn1s0YdS)Nrrsr5r6rz1.0) rrwrrDr rr(ryrHrGr))rr{r,rrrtest_invalid_value_domain:s ( & z(TestBooleanVar.test_invalid_value_domainN)rrrr-rfr|r}rrrrrqs rqc@seZdZddZdS)DefaultRootTestcCsT|ttt}t}|d||d|t |ttdSrJ) rD RuntimeErrorrr=r>rr(r)r?Z NoDefaultRoot)rrr,rrr test_variableJs  zDefaultRootTest.test_variableN)rrrrrrrrr~Hsr~__main__)Zunittesttestrr^r=rrrrrrr Z test.supportr Ztkinter.test.supportr r ZTestCaserr!rdrhrkrqr~rmainrrrrs" $    8/