U :eB@sddlZddlmZGdddZGdddeZGdddeZGd d d ejZGd d d ejZ ee fZ e d krddl m Z e e dS)N)ttkc@seZdZddZddZdS) MockTkAppcCst|tr|S|dS)N:) isinstancetuplesplit)selfargr I/usr/local/python38/lib/python3.8/tkinter/test/test_ttk/test_functions.py splitlists zMockTkApp.splitlistcCsdS)NTr rr r r wantobjects szMockTkApp.wantobjectsN)__name__ __module__ __qualname__r rr r r r rsrc@s eZdZdZddZddZdS) MockTclObjtestcCs ||_dSNval)rrr r r __init__szMockTclObj.__init__cCs t|jSr)strrr r r r __str__szMockTclObj.__str__Nrrrtypenamerrr r r r rsrc@s eZdZdZddZddZdS) MockStateSpecZ StateSpeccGs ||_dSrr)rargsr r r rszMockStateSpec.__init__cCs d|jSN )joinrr r r r r szMockStateSpec.__str__Nrr r r r rsrc@s\eZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ dS)InternalFunctionsTestc sfdd}ti|tdddddgddd d |td d id di|td ddiid ddii|tjdddddgddddddddddddddd d!d"dd#d$}|}|t|dd#d%|||td&d'id(d)i|td&d*id(d+i|td&d,id(d-i|td&d.id(d/i|td&d0id(d1i|td&d2id(d3ittj|d4d5d}|t|dttj|d6d5d}|t|dtj|t|d5dS)7NcsJtdt|dD]"}|||||dq|rFd|dS)Nrzresult still got elements: %s)rangelen assertEqualpopZfail)Zfmt_optsresultir r r check_against's z@InternalFunctionsTest.test_format_optdict..check_againstZbluer#r")ZfgZpaddingz1 2 3 4)z-fgz-paddingr)r#r"r-testz1 2 {} 0leftzas isr-2mrzabc defz"abc"z{}z } -spam {)rZtest2Ztest3Ztest4Ztest5Ztest6Ztest7TZscriptz{1 -1 {} 2m 0}3z {abc def}z{"abc"}z\{\}z \}\ -spam\ \{)r.z-test2z-test3z-test4z-test5z-test6z-test7Fuαβγá)u-αβγu-áoption)zone twothree-optionz{one two} three)zone twor7z{one two} three)r-Zonez{} one)z one} {twor7zone\}\ \{two three)z"one"twoz {"one"} two)z{one}r9z \{one\} twor5)ignore)r5b) assertFalserZ_format_optdictcopyr&r%listkeys)rr*optsZ orig_optsZ amount_optsr r r test_format_optdict&s     z)InternalFunctionsTest.test_format_optdictcCstddddgi}t|}|t|tt|d||d|tj|ddd |tdgid d d gi}t|}||d |tddgidddgi}|t|dddgi}|ttj|ddgddfgi}|ttj|dddggi}|t|dddddtfD]&}d|dfgi}|t|dq0ddi}|ttj|dS)Na)r;cr)dZotherval)r-Zsingler")-az{b c} val d otherval {} singleTr2)rEz {{b c} val d otherval {} single})z-2r- üñíćódèr5uvãl)u-üñíćódèuá vãlopt)value)-optz{} value)r-r-hi)rJz{ } hi)r#r" valid valr#2rLrI)rJz1 valuerFr-) rZ_format_mapdictr&r%r>r? assertRaises TypeErrorset)rr@r(ZvalidinvalidZstatevalr r r test_format_mapdict~s:         z)InternalFunctionsTest.test_format_mapdictc Cs|tdd|ttjd|tdddd|tddddd|tddddd |tjdddd d d d |tjddddddgdd|ttjd|tddddd|tdddddd|tjddddd d dd|tjddddddddgfd dd|ttjd|tdddd|tddddd|tddddd dS)!N)Nr imageFr)ztest r )r-rB)z test {} ar rBr;rC)z test {a b} cr rBr;x)rB)ztest a b)rErVT)rBr;rCrDr"r+)rV)z{test {a b c} d}z-x {2 3}ZvsapirBr;)za b r )z a b {a b} cr )rH)za b a b)rJrVr#)z{a b {a b} {1 2}}z-opt xfrom)rBr )rB)r;)z{a}r;) assertTruerZ_format_elemcreaterN IndexErrorr& ValueErrorr r r r test_format_elemcreatest z,InternalFunctionsTest.test_format_elemcreatecCsddd}ddd}|tgdd|ttjdgtjd gdd }||tjd gdd ||dd |||td D]0}||||||||||||q|ttjddg|ttjdg|ttjddd diifgdS)Nrr"c SsFtjddddgddddd d ifgd d fgifgd fg||ddS)NrBr#r"r+r;childrenrCrDnicerH)r#r")r\ something)otherr\indent indent_sizer)r_format_layoutlistr`r r r samples  z.samplecsHdfdd }d||||d||d||d||||fS)Nrcs d|Srr )amountrar r zWInternalFunctionsTest.test_format_layoutlist..sample_expected..zi%sa -other {1 2 3} -children { %sb -children { %sc -something {1 2} -children { %sd -nice opt %s} %s} %s}r"r+)rr )rarbZspacesr rfr sample_expecteds   zEInternalFunctionsTest.test_format_layoutlist..sample_expectedr-rU)rBNrf)rBr-rBr,badformat)namerjrlr\)rr")rr")r&rrcrNAttributeErrorr$rZ)rrdrismallestr)r r r test_format_layoutlists2     z,InternalFunctionsTest.test_format_layoutlistc Cs2|tdddddi|tdddiidddd}|tdd|iid d gi}|tdd |ii|ttjdd d gii|tdd d dgiidd d ddgii}|t|d|dd ddi|t|dtdtdg|dd dd<|t|ddS)Nrl) configuremapelement createZlayoutzttk::style layout name { null }TFr4rprFrGrqrrrSthing)Zstate1Zstate2rzAttk::style element create thing image {name {state1 state2} val} rHzHttk::style element create thing image {name {state1 state2} val} -opt 30r+r1r0zLttk::style element create thing image {name {state1 state2} val} -opt {3 2m}) r<rZ_script_from_settingsr&rXrNrYappendr)rZ configdictZmapdictrSr r r test_script_from_settingssL          z/InternalFunctionsTest.test_script_from_settingscCsH|ttdddfdg|ttddtdgdddgdS) NrBr;r)rBr;r1r"Z3mr#)r&rZ _tclobj_to_pyrrr r r r test_tclobj_to_pyEsz'InternalFunctionsTest.test_tclobj_to_pycsfdd}tddtdD}t|}||dd|||tdd|tddtdD}t|}||dd||d tddd dS) Ncs"t||f||fgdSr)r&rZ_list_from_statespec)ZsspecrIZ res_valueZstatesr r r test_itOs  z?InternalFunctionsTest.test_list_from_statespec..test_itcss|]}d|VqdSzstate%dNr .0r)r r r SszAInternalFunctionsTest.test_list_from_statespec..rcss|]}d|VqdSrzr r{r r r r}XsrT)rr$rr)rryZ states_evenZ statespecZ states_oddr r r test_list_from_statespecNs z.InternalFunctionsTest.test_list_from_statespecc Cst}|t|d|t|ddifgd}|t||dddifg|t|ddd gifgd }|t||dd d d difgdfgdfg|ttj|d|ttj|d|ttj|ddS)Nr )rlrl)rlr8rIr6rI)r^ -childrenr r^r\)rlr8niceoner)otheroner)childz -otheropt othervaluerrrr)Zotheroptr\)r6r\)rlno_minus)rlrrI)r^r)rr<rZ_list_from_layouttupler&rNrZ)rtkZ sample_ltupleZltupler r r test_list_from_layouttuple_s>      z0InternalFunctionsTest.test_list_from_layouttuplecCsd dd}t}||_|t|idddi|t|idddi|t|ddidd |t|ddidddidS) NcSs |dkr |S|dkrdS||fS)Ntest valr )resrHrr r r funcs z4InternalFunctionsTest.test_val_or_dict..funcz-test:3rr3)r.r+r+zx:yr)NN)rcallr&rZ _val_or_dict)rrrr r r test_val_or_dicts z&InternalFunctionsTest.test_val_or_dictcCs8ddddgdfdf}|D]\}}|t||qdS)N)rr)Z09 )rBrB)áÚrz[])NNone)r&rZ_convert_stringval)rZtestsZorigZexpectedr r r test_convert_stringvals z,InternalFunctionsTest.test_convert_stringvalN) rrrrArRr[rorvrxrrrrr r r r r!$sX(;9+ .r!c@s$eZdZddZddZddZdS)TclObjsToPyTestcCsHddi}|t|ddit|d|d<|t|ddidS)NrHuvälúè)r&r tclobjs_to_pyrrZadictr r r test_unicodeszTclObjsToPyTest.test_unicodecCsdddddgi}|t|dddddgidddg|d<|t|ddddgitddd f|d<|t|dd gi|td d gid d gidS) NrHr#r"r+r,ZxmrBr;válũè)rBr;rrVzy z)r&rrrrr r r test_multivaluess z TclObjsToPyTest.test_multivaluescCs|tddiddidS)Ntextz some text)r&rrr r r r test_nosplitszTclObjsToPyTest.test_nosplitN)rrrrrrr r r r rsr__main__) run_unittest)ZunittesttkinterrrobjectrrZTestCaser!rZ tests_noguirZ test.supportrr r r r s