a ze7@sddlZddlZddlZddlmZddlmZddlmZmZm Z ddl m Z edGddde ej Z Gd d d e ej ZGd d d e ej Ze eefZed kredS)N)TclError)requires) pixels_conv tcl_version requires_tcl)AbstractWidgetTestZguic@sxeZdZdZddZddZddZdd Zd d Zd d Z ddZ ddZ ddZ ddZ ddZddZddZdS)PackTestNcCstj|jdd}|d|ddtj|ddddd }tj|d d d d d }tj|ddddd }tj|ddd dd }|||||fS)Npack)name 300x200+0+0a(red)r widthheightbgb2bluecPgreendZyellow)tkinterToplevelroot wm_geometryZ wm_minsizeFrameselfr r rrrr#d/opt/bitninja-python-dojo/embedded/lib/python3.9/tkinter/test/test_tkinter/test_geometry_managers.pycreate2s  zPackTest.create2cCs|\}}}}}|td||j|dWdn1sD0Y|td|jddWdn1s|0Y|jdd|jdd|jdd|jdd||||||g|j|d||||||g|j|d||||||gdS)Nwindow "%s" isn't packed)Zafterbad window path name ".foo".footopsider%assertRaisesRegexrpack_configure assertEqual pack_slavesr!r#r#r$test_pack_configure_afters**      z"PackTest.test_pack_configure_aftercs~\}}}}fdd}|dd|dd|dd|d d |d d |d d|dd|dd|dddS)Nc s6jdddddd|dj|dS)Nr) rT)r+ipadxpadxipadypadyexpandanchor)r.rupdater/winfo_geometry)r:Zgeomr r"r#r$check-s  z2PackTest.test_pack_configure_anchor..checknz 30x70+135+20nez 30x70+260+20ez 30x70+260+65sez 30x70+260+110sz 30x70+135+110swz 30x70+10+110wz 30x70+10+65nwz 30x70+10+20centerz 30x70+135+65r%)r"r rrrr>r#r=r$test_pack_configure_anchor+s        z#PackTest.test_pack_configure_anchorcCs|\}}}}}|td||j|dWdn1sD0Y|td|jddWdn1s|0Y|jdd|jdd|jdd|jdd||||||g|j|d||||||g|j|d||||||gdS)Nr&)beforer'r(r)r*r,r!r#r#r$test_pack_configure_before<s**      z#PackTest.test_pack_configure_beforecs\}fdd}jddjddjddjdd|dd d d jdd d jddd jddd jddd |ddddjdd ddjddddjddddjdddd|dddddS)Ncs^j|d|d|d|ddS)Nrr )rr;r/r<)Zgeomsr rrrr"r#r$r>Ns  z2PackTest.test_pack_configure_expand..checkleftr*r)rightbottom 20x40+0+80z 50x30+135+0z 80x80+220+75z 40x30+100+170Zyes)r+r9ZonTr z 20x40+40+80z 50x30+175+35z 80x80+180+110z 40x30+100+135both)r+r9fillz 100x200+0+0z 200x100+100+0z160x100+140+100z40x100+100+100)r%r.)r"r r>r#rNr$test_pack_configure_expandLs"    z#PackTest.test_pack_configure_expandcCs|\}}}}}|jdd|jdd|jdd|jdd|j|d||||||g|j|d|||||g|||g|td|f|j|dWdn1s0Y|td|jddWdn1s0YdS)Nr)r*in_zcan't pack %s inside itselfr'r()r%r.r/r0r-rr!r#r#r$test_pack_configure_inds       *zPackTest.test_pack_configure_incs\}}}fdd}|ddddd|dddd d|d dddd |d d dddd|dddddd|dddddd|d ddddd|d d ddddd|dd ddddd|ddddd|ddddd|ddddd |dddddd|d ddddd|d!ddddd|d"ddd#dd|d$ddddd|d%dddddd|d&ddddddjd'd(d)|d'jd'd*d+|d'dS),Ncs\jfi|jdddj||dSNTrSr9rT pack_forgetr.rr;r/r<geom1geom2kwargsr rr"r#r$r>ws z;PackTest.test_pack_configure_padx_ipadx_fill..checkz 20x40+260+80z 240x200+0+0rPr)r+r6z 20x40+250+80r3rz 60x40+240+80)r+r5z 30x40+260+80z 250x200+0+0r2r3)r+r5r6x)r+r6rTz 20x40+249+80 )r+r5rT)r+r5r6rTz 30x40+255+80r2r4 20x40+140+0 300x160+0+40r)z 20x40+120+0rrz 60x40+120+0z 30x40+135+0z 30x40+130+0z 260x40+20+0z 260x40+25+0r4z 300x40+0+0z 280x40+10+0z 280x40+5+01cr6r6r5r5r%r.r/ pack_info_strZ winfo_pixelsr"r rrr>r#rar$#test_pack_configure_padx_ipadx_fillusR  z,PackTest.test_pack_configure_padx_ipadx_fillcs\}}}fdd}|ddddd|dddd d|d dddd |d ddd dd|dddddd|dddddd|d ddddd|d ddd ddd|dddd ddd|ddddd|ddddd|ddddd |dddd dd|d ddd dd|d!ddddd|d"ddd#dd|d$ddddd|d%ddd ddd|d&ddd dddjd'd(d)|d'jd'd*d+|d'dS),Ncs\jfi|jdddj||dSrYr[r]rar#r$r>s z;PackTest.test_pack_configure_pady_ipady_fill..check 20x40+280+80 280x200+0+0rPr)r+r8z 20x40+280+70rbz 20x80+280+60)r+r7z 20x50+280+75r2r3)r+r7r8rc)r+r8rTz 20x40+280+69rd)r+r7rT)r+r7r8rTz 20x50+280+70rgz 20x40+140+20z 300x120+0+80r)rhrjz 20x80+140+0z 20x50+140+10z 300x130+0+70z 20x50+140+5z 300x40+0+20z 300x40+0+25rkz 300x80+0+0z 300x50+0+10z 300x50+0+5rmr8r8r7r7rprsr#rar$#test_pack_configure_pady_ipady_fillsR  z,PackTest.test_pack_configure_pady_ipady_fillcsV\}}}fdd}|ddd|ddd|d d d |d d ddS)Ncs\j|dd|jdddj||dS)Nr*r+TrSrZ)r.r/rqrr;r<)r+r^r_rar#r$r>s   z0PackTest.test_pack_configure_side..checkr)rhrirQz 20x40+140+160z 300x160+0+0rOrRz 280x200+20+0rPrurvrHrsr#rar$test_pack_configure_sides    z!PackTest.test_pack_configure_sidecCs|\}}}}}||||||||g|||||g|||||g|dSN)r%r.r/r0r\r!r#r#r$test_pack_forgetszPackTest.test_pack_forgetc Cs|\}}}}}|td||Wdn1s@0Y||jd|ddddddd d |}||t||d d ||d |d||dd||d|||d|d||d|d||d|d||d|d||dd|}||t||d d||d |d||dd||d|||d|d||d|d||d|d||d|d ||dddS)Nr&rPrCTrcr2r3rLrg) r+rWr:r9rTr5r6r7r8r:rGr9rrTZnoneinr5r7r6r8r+r)r ) r%r-rrqr.assertIsInstancedictr/rr)r"r r rrrinfor#r#r$test_pack_infos:&  zPackTest.test_pack_infocCs|\}}}}}|jddd||d|j||d||d|d|j||d||ddS)N,rrFTrr) r%Z configurer.Zpack_propagaterr;r/Zwinfo_reqwidthZwinfo_reqheightr!r#r#r$test_pack_propagates    zPackTest.test_pack_propagatecCs\|\}}}}}||g||||g|||||gdSr{)r%r/r0r.r!r#r#r$test_pack_slavess zPackTest.test_pack_slaves)__name__ __module__ __qualname__ test_keysr%r1rIrKrUrXrtryrzr|rrrr#r#r#r$r s **  rc@seZdZdZddZddZddZdd Zd d Zd d Z ddZ ddZ ddZ ddZ ddZddZddZddZddZdS) PlaceTestNcCshtj|jdddd}|dtj|dddd d }|jd d d tj|dddd d }|j|||fS)Nrrr)rrbdr TrLZraised)rrrZrelief0&)rcyr<)rrrrr place_configurer;r"tff2r#r#r$r%s  zPlaceTest.create2cCs|\}}}||d|tdtt||j|dWdn1sZ0Yt dkr|||d|td|jddWdn1s0Y|j|d||ddS)Nz!can't place %s relative to itselfrVr2zbad window path namespamZplace) r%r/Z winfo_managerr-rreescapestrrrrr#r#r$test_place_configure_in$s ** z!PlaceTest.test_place_configure_incCs|\}}}|j|d||dd|j||d|jdd||dd|j||d|jd d d ||dd |j||d |td|j|ddWdn1s0YdS)NrVrc0rd)rcZ100r )rcrelx-10bad screen distance "spam"r)rWrc r%rr/ place_inforr;Zwinfo_xr-rrr#r#r$test_place_configure_x1s     z PlaceTest.test_place_configure_xcCs|\}}}|j|d||dd|j||d|jdd||dd|j||d|jd d d ||dd |j||d |td|j|ddWdn1s0YdS)NrVrrrr)rZ50Zrr )rrelyrnrr)rWr r%rr/rrr;Zwinfo_yr-rrr#r#r$test_place_configure_yBs     z PlaceTest.test_place_configure_ycCs|\}}}|j|d||dd|j||d|jdd||dd|j||d|jd d||dd |j||d |td |j|d dWdn1s0YdS)NrVrrr?)r0.5}r 1r-expected floating-point number but got "spam"r)rWrrrr#r#r$test_place_configure_relxSs      z#PlaceTest.test_place_configure_relxcCs|\}}}|j|d||dd|j||d|jdd||dd|j||d|jd d||dd |j||d |td |j|d dWdn1s0YdS)NrVrrrr)rrrr rxrr)rWrrrr#r#r$test_place_configure_relyes      z#PlaceTest.test_place_configure_relycCst|j}|td|jddWdn1s:0Y|td|jddWdn1sr0YdD]$}|j|d||d|qdS)Nzbad anchor "j"j)r:ambiguous anchor ""r) r?r@rArBrCrDrErFrGr:rr rr-rrr/rr"rvaluer#r#r$test_place_configure_anchorws ** z%PlaceTest.test_place_configure_anchorcCs|\}}}|j|dd|j||d|jdd|j||d|td|jddWdn1s0YdS)Nr)rWrr)rrbad screen distance "abcd"abcdr%rrr;r/ winfo_widthr-rrr#r#r$test_place_configure_widths   z$PlaceTest.test_place_configure_widthcCs|\}}}|j|dd|j||d|jdd|j||d|td|jddWdn1s0YdS)Nr)rWrr)rrrrr%rrr;r/ winfo_heightr-rrr#r#r$test_place_configure_heights   z%PlaceTest.test_place_configure_heightcCs|\}}}|j|dd|j||d|jdd|j||d|td|jddWdn1s0YdS) Nr)rWrelwidthKr)rr-expected floating-point number but got "abcd"rrrr#r#r$test_place_configure_relwidths   z'PlaceTest.test_place_configure_relwidthcCs|\}}}|j|dd|j||d|jdd|j||d|td|jddWdn1s0YdS) Nr)rW relheightrr)rrrrrrr#r#r$test_place_configure_relheights   z(PlaceTest.test_place_configure_relheightcCst|j}|td|jddWdn1s:0Y|td|jddWdn1sr0YdD]$}|j|d||d|qdS)Nzbad bordermode "j"r) bordermodezambiguous bordermode ""r)Zinsideoutsideignorerrrr#r#r$test_place_configure_bordermodes ** z)PlaceTest.test_place_configure_bordermodecCs|t|j}|jddd|j||j|||t |dWdn1sn0YdS)Nrrr) rr rrr;Z place_forget assertFalseZwinfo_ismapped assertRaises TypeError)r"foor#r#r$test_place_forgets    zPlaceTest.test_place_forgetc Cs<|\}}}|j|ddddddddd d d |}||t||d d ||dd||dd||dd||dd||dd||dd||dd||dd ||dd ||d d ||d d |t|dWdn1s.0YdS)Nr rLrMg?g?g333333?g?rBr) rWrcrrrrrrrr:rrcrr2r3r4rz0.1rz0.2rz0.3rz0.4r:rr)r%rrr~rr/rr)r"rrrrr#r#r$test_place_infos*  zPlaceTest.test_place_infocCs~t|j}t|j}||g|j|d|||g|t|dWdn1sp0YdS)NrVr)rr rr/Z place_slavesrrr)r"rZbarr#r#r$test_place_slavess    zPlaceTest.test_place_slaves)rrrrr%rrrrrrrrrrrrrrr#r#r#r$rs          rcseZdZdZfddZddZddZdd Zd d Zd d Z ddZ ddZ ddZ ddZ ddZddZddZddZddZd d!Zd"d#Zd$d%Zd&d'Zd(d)Zd*d+Zd,d-Zd.d/Zd0d1Zd2d3Zed4d5d6d7Zd8d9Zd:d;Z dd?Z"d@dAZ#Z$S)BGridTestNcs|j\}}t|dD]}|jj|dddddqt|dD]}|jj|dddddqB|jdtdkr~|jdt dS)Nr rr)weightminsizepaduniformrrF) r grid_sizerangegrid_columnconfiguregrid_rowconfiguregrid_propagater grid_anchorsupertearDown)r"ZcolsZrowsi __class__r#r$rs  zGridTest.tearDowncCst|j}||i|||d|j||d|d||d|d|jddidd||d|d||d|ddS)Nr}columnrrowr rLr)rButtonrr/ grid_infogrid_configurerrr"rr#r#r$test_grid_configures zGridTest.test_grid_configurecCsnt|j}|td|jddWdn1s:0Y|jdd||d|ddS)Nz5bad column value "-1": must be a non-negative integerrrLr rrrr-rrr/rrrrr#r#r$test_grid_configure_columns  * z#GridTest.test_grid_configure_columncCsnt|j}|td|jddWdn1s:0Y|jdd||d|ddS)Nz4bad columnspan value "0": must be a positive integerr) columnspanrLrrrr#r#r$test_grid_configure_columnspans  * z'GridTest.test_grid_configure_columnspancCst|j}t|j}||i|||d|j|j|d||d||d|ji||d|jdS)Nr}rV)rr rrr/rr)r"rrr#r#r$test_grid_configure_in s   zGridTest.test_grid_configure_incCst|j}|td|jddWdn1s:0Y|jdd||d|d|jdd||d|t t d|j dS)Nz6bad ipadx value "-1": must be positive screen distancerror r5.5c rrrr-rrr/rrrroundrZscalingrr#r#r$test_grid_configure_ipadxs *  z"GridTest.test_grid_configure_ipadxcCst|j}|td|jddWdn1s:0Y|jdd||d|d|jdd||d|t t d|j dS)Nz6bad ipady value "-1": must be positive screen distancerrxr r7rrrr#r#r$test_grid_configure_ipady#s *  z"GridTest.test_grid_configure_ipadycCst|j}|td|jddWdn1s:0Y|jdd||d|d|jdd||d|d|jdd||d|t t d|j dS)N4bad pad value "-1": must be positive screen distancerrnr r6r3r2rrrr#r#r$test_grid_configure_padx.s *   z!GridTest.test_grid_configure_padxcCst|j}|td|jddWdn1s:0Y|jdd||d|d|jdd||d|d|jdd||d|t t d|j dS)Nrrrwr r8rrrrr#r#r$test_grid_configure_pady;s *   z!GridTest.test_grid_configure_padycCsnt|j}|td|jddWdn1s:0Y|jdd||d|ddS)Nz9bad (row|grid) value "-1": must be a non-negative integerrrrLrrrr#r#r$test_grid_configure_rowHs  * z GridTest.test_grid_configure_rowcCsnt|j}|td|jddWdn1s:0Y|jdd||d|ddS)Nz1bad rowspan value "0": must be a positive integerr)rowspanrLrrrr#r#r$test_grid_configure_rownspanPs  * z%GridTest.test_grid_configure_rownspancCstj|jdd}|td|jddWdn1s>0Y|jdd||dd|jdd||dd dS) Nr)rzbad stickyness value "glue"Zglue)stickyr@rzn,s,e,wZnesw)rr rr-rrr/rr"rr#r#r$test_grid_configure_stickyXs*  z#GridTest.test_grid_configure_stickycCs|t|jWdn1s*0Y||jdddddd|td|jddWdn1s0Y|jjddd|td|jdWdn1s0Yt|j}|j ddd t d krX|jjd d d|td |jd Wdn1s80Y||jddd ||jd dd||jdddt d kr|jj|dd||jddddSNr)rrrrzbad option "-foo"r)rrMrLrz*must specify a single element on retrieval)rrrallrMzexpected integer but got "all"ri r) rrrrr/r-rrrrrrr#r#r$test_grid_columnconfigureas0 ( ,*  , z"GridTest.test_grid_columnconfigurecCs~|td |jjdddWdn1s20Y|jjddd||jddd||jddddSNbad screen distance "foo"rr)rr3rr-rrrr/r"r#r#r$!test_grid_columnconfigure_minsizeys .z*GridTest.test_grid_columnconfigure_minsizecCs|td |jjdddWdn1s20Y|td |jjdddWdn1sn0Y|jjddd||jddd||jddddS Nzexpected integer but got "bad"rZbadr z-invalid arg "-weight": should be non-negativerMrrrr#r#r$ test_grid_columnconfigure_weights..z)GridTest.test_grid_columnconfigure_weightcCs|td |jjdddWdn1s20Y|td |jjdddWdn1sn0Y|jjddd||jddd||jddddS Nrrr)rz*invalid arg "-pad": should be non-negativerrMrrrr#r#r$test_grid_columnconfigure_pads..z&GridTest.test_grid_columnconfigure_padcCsB|jjddd||jddd||jddddSNrr)rr)rrr/rr#r#r$!test_grid_columnconfigure_uniformsz*GridTest.test_grid_columnconfigure_uniformcCs|t|jWdn1s*0Y||jdddddd|td|jddWdn1s0Y|jjddd|td|jdWdn1s0Yt|j}|j ddd t d krX|jjd d d|td |jd Wdn1s80Y||jddd ||jd dd||jdddt d kr|jj|dd||jddddSr ) rrrrr/r-rrrrrrr#r#r$test_grid_rowconfigures0 ( ,*  , zGridTest.test_grid_rowconfigurecCs~|td |jjdddWdn1s20Y|jjddd||jddd||jddddSr r-rrrr/rr#r#r$test_grid_rowconfigure_minsizes .z'GridTest.test_grid_rowconfigure_minsizecCs|td |jjdddWdn1s20Y|td |jjdddWdn1sn0Y|jjddd||jddd||jddddSrrrr#r#r$test_grid_rowconfigure_weights..z&GridTest.test_grid_rowconfigure_weightcCs|td |jjdddWdn1s20Y|td |jjdddWdn1sn0Y|jjddd||jddd||jddddSrrrr#r#r$test_grid_rowconfigure_pads..z#GridTest.test_grid_rowconfigure_padcCsB|jjddd||jddd||jddddSr)rrr/rr#r#r$test_grid_rowconfigure_uniformsz'GridTest.test_grid_rowconfigure_uniformc Cs$t|j}t|j}|jdddddddd||j|g||||jg||i|jddd|}||d|d||d |d||d |d ||d |d ||d |d||d|d||dddS)NrLrMrnsrrrrr6r8rrrrrrrr rr6r8rr) rrrrr/ grid_slavesZ grid_forgetrrrr"rrrr#r#r$test_grid_forgets&   zGridTest.test_grid_forgetc Cs$t|j}t|j}|jdddddddd||j|g||||jg||i|jddd|}||d|d||d |d||d |d||d |d||d |d||d |d||dddS)NrLrMrrr rr!rrrrr6r8r) rrrrr/r"Z grid_removerrrr#r#r#r$test_grid_removes&   zGridTest.test_grid_removec Cst|j}||i|jdddddddd|}||t||d|j||d|d||d|d||d |d||d |d||d |d||d |d||d ddS)NrLrMrrr r}rrrrr6r8r) rrrr/rrr~rrr)r"rrr#r#r$test_grid_infos   zGridTest.test_grid_inforr2cCs|td|jdWdn1s.0Y|td|jdWdn1sf0Y|t|jddWdn1s0Y|jd||jjdd|jddS) Nzbad anchor "x"rcrrrBrFZgridr:) r-rrrrrr/Ztkcallrr#r#r$test_grid_anchor s** , zGridTest.test_grid_anchorcCst||jd||jddd||jddddd|td|jddWdn1sr0Y|td|jddWdn1s0Y|td"|jddddWdn1s0Y|td"|jddddWdn1s*0Y|t$|jdddddWdn1sj0Y|j}|d|dtj |ddd d }tj |d d d d }|j ddd |j ddd |j ||d||ddd||ddddd||ddd||ddddd||ddddd||ddddddS)N)rrrrrr zexpected integer but got "x"rc1x1+0+0rrrrrrrrr!)rrr+)rrrr)rrrrr3r )r+r+rr) r/rZ grid_bboxr-rrrrrr rr;)r"rf1rr#r#r$test_grid_bboxs8,,02 4   zGridTest.test_grid_bboxcCsN|t|jWdn1s*0Y|t|jdWdn1s`0Y|t |jdddWdn1s0Y|td|jddWdn1s0Y|td|jddWdn1s0Y|j}|d|dtj|d d dd d }| |d d d| |j | |ddd| |ddd| |ddd| |ddd| |ddd| |ddd| |d dd| |ddd| |dd d| |ddd| |ddddS)Nrzbad screen distance "x"rcrzbad screen distance "y"rmr)rrrr)rrZhighlightthicknessrr3)rrr)rrr)rrrr)r re)rr r r ) rrrZ grid_locationr-rrrr r/rr;)r"rrr#r#r$test_grid_location3s< ( * .,.    zGridTest.test_grid_locationcCsB||jd|t|jddWdn1s@0Y|jd||jtj|jdddd}|jddd|j || d|| d|dtj|jdd d d}|j|ddd |j || d|| d|d|j || d|| d dS) NTFrrr*rr!rUr)rWrr) r/rrrrrrr rr;rr)r"rgr#r#r$test_grid_propagateSs( ,      zGridTest.test_grid_propagatecCs|t|jdWdn1s,0Y||jdt|j}|jddd||jd|jddd||jddS)Nrr0r!r3rr2)r2)rrrrr/rZScalerrr#r#r$test_grid_sizeis * zGridTest.test_grid_sizecCs||jgt|j}|jdddt|j}|jdddt|j}|jdddt|j}|jddd||j||||g||jjdd|g||jjdd|||g||jjdd|g||jjdd|||g||jjddd||gdS)Nrr r!rr)r/rr"rZLabelr)r"r rrrr#r#r$test_grid_slavesss    zGridTest.test_grid_slaves)%rrrrrrrrrrrrrrrrr rrrrrrrrrr$r%r&rr(r/r4r7r9r: __classcell__r#r#rr$rsB               r__main__)ZunittestrrrZ test.supportrZtkinter.test.supportrrrZtkinter.test.widget_testsrZTestCaserrrZ tests_guirmainr#r#r#r$s(    M&