B 0‘c¯3ã@sˆddlZddlmZddlZddlZddlmZddlZ ddl m Z ddl m Z Gdd„dƒZGdd „d ejƒZed kr„ejd d dS) éN)Úchain)Úrequires)Ú Delegator)Ú Percolatorc@s$eZdZdd„Zdd„Zdd„ZdS)Ú Dummy_editwincCs4||_|jj|_t|ƒ|_tƒ|_|j |j¡dS)N)ÚtextZmasterÚ text_framerÚperrZundoZ insertfilter)Úselfr©r úC/opt/alt/python37/lib64/python3.7/idlelib/idle_test/test_sidebar.pyÚ__init__s   zDummy_editwin.__init__cCsdS)Nr )r ÚnameÚvaluer r r ÚsetvarszDummy_editwin.setvarcCstt|j |¡ƒƒS)N)ÚintÚfloatrÚindex)r rr r r Ú getlinenoszDummy_editwin.getlinenoN)Ú__name__Ú __module__Ú __qualname__r rrr r r r r src@sÌeZdZedd„ƒZedd„ƒZdd„Zdd„Zd d „Zd d „Z d d„Z dd„Z dd„Z dd„Z dd„Zdd„Zdd„Zdd„Zdd„Zdd „Zd!d"„Zd#d$„Zd%d&„Zd'd(„Zd)d*„Zd+d,„Zd-d.„Zd/S)0ÚLineNumbersTestcCs¢tdƒt ¡|_t |j¡|_|jjtjtjdd|jj ddd|jj dddtj |jddtj d|_ |j jddtjd t|j ƒ|_t |j¡|j_dS) NZguiT)ZsideÚfillÚexpandé)ZweightéPé)ÚwidthZheightÚwrap)ÚrowÚcolumnZsticky)rÚtkZTkÚrootZFramerÚpackZLEFTZBOTHZ rowconfigureZcolumnconfigureZTextZNONErZgridZNSEWrÚeditwinZ ScrollbarZvbar)Úclsr r r Ú setUpClasss  zLineNumbersTest.setUpClasscCs4|jj ¡|j ¡|j ¡|`|`|`|`dS)N)r%r Úcloser#ÚupdateZdestroyrr)r&r r r Ú tearDownClass.s   zLineNumbersTest.tearDownClasscsžtj ˆj¡ˆ_dddœˆ_tjjj‰‡‡fdd„}tj j   tjjd|¡}|  ¡ˆ  |j¡dˆ_‡fdd „}tj j   tjjd |¡}|  ¡ˆ  |j¡dS) Nz#abcdefz#123456)Ú backgroundÚ foregroundcs|dkrˆjSˆ||ƒS)NÚ linenumber)Ú highlight_cfg)ZthemeZelement)Úorig_idleConf_GetHighlightr r r Úmock_idleconf_GetHighlight;sz9LineNumbersTest.setUp..mock_idleconf_GetHighlightÚ GetHighlightZ TkFixedFontcsˆjS)N)Ú font_override)r#Z configTypeÚsection)r r r Úmock_idleconf_GetFontEsz4LineNumbersTest.setUp..mock_idleconf_GetFontZGetFont)ÚidlelibZsidebarZ LineNumbersr%r-r.ZidleConfr1ÚunittestZmockZpatchÚobjectÚstartZ addCleanupÚstopr2)r r0ZGetHighlight_patcherr4ZGetFont_patcherr )r/r r ÚsetUp5s    zLineNumbersTest.setUpcCs|j dd¡dS)Nz1.0Úend)rÚdelete)r r r r ÚtearDownLszLineNumbersTest.tearDowncCsttt|j d¡ƒƒS)NZsel)ÚtupleÚmapÚstrrZ tag_ranges)r r r r Ú get_selectionOszLineNumbersTest.get_selectioncCs4|jj |›d¡}|dd}|dd}||fS)Nz.end -1crér)r-Ú sidebar_textÚbbox)r ÚlinerDÚxÚyr r r Úget_line_screen_positionRs  z(LineNumbersTest.get_line_screen_positioncCs&|jj ¡d}| |dtj¡dS)NÚstateéÿÿÿÿ)r-rCÚconfigÚ assertEqualr"ZDISABLED)r rIr r r Úassert_state_disabledXsz%LineNumbersTest.assert_state_disabledcCs|jj dtj¡S)Nz1.0)r-rCÚgetr"ZEND)r r r r Úget_sidebar_text_contents\sz)LineNumbersTest.get_sidebar_text_contentsc Cs6d ttttd|dƒƒdgƒ¡}| | ¡|¡dS)NÚ rÚ)Újoinrr?r@ÚrangerLrO)r Zn_linesÚexpectedr r r Úassert_sidebar_n_lines_s"z&LineNumbersTest.assert_sidebar_n_linescCs| |j dd¡|¡S)Nz1.0r;)rLrrN)r rTr r r Úassert_text_equalscsz"LineNumbersTest.assert_text_equalscCs| d¡dS)Nr)rU)r r r r Útest_init_emptyfszLineNumbersTest.test_init_emptycCs&|j dd¡| d¡| d¡dS)NÚinsertzfoo bar foo bar foo bar zfoo bar foo bar foo bar é)rrXrVrU)r r r r Útest_init_not_emptyis z#LineNumbersTest.test_init_not_emptycCs–| |jjd¡|j ¡| |jjd¡|j ¡| |jjd¡|j ¡| |jjd¡|j ¡| |jjd¡|j ¡| |jjd¡dS)NFT)rLr-Zis_shownÚ show_sidebarÚ hide_sidebar)r r r r Útest_toggle_linenumberingns     z)LineNumbersTest.test_toggle_linenumberingcCs¬|j dd¡| d¡| d¡| ¡|j dd¡| d¡| d¡| ¡|j dd¡| d ¡| d ¡| ¡|j dd ¡| d ¡| d ¡| ¡dS)NrXÚfoobarzfoobar rz fooz foobar foo rBz hello hello zfoobar foohello hello rYz worldzfoobar foohello hello world é)rrXrVrUrM)r r r r Ú test_insert{s         zLineNumbersTest.test_insertcCsî|j dd¡| d¡|j dd¡| d¡| d¡| ¡|j dd¡| d ¡| d ¡| ¡|j d d ¡| d ¡| d ¡| ¡|j dd¡| d¡| d¡| ¡|j dd¡| d¡| d¡| ¡dS)NrXr^zfoobar z1.1z1.3zfbar rzfoo foo z fbarfoo foo éz2.0z2.endz fbarfoo r;zfba z1.0rP)rrXrVr<rUrM)r r r r Ú test_deletes,           zLineNumbersTest.test_deletecs<‡fdd„}ˆ d¡ˆ |ƒd¡ˆj dd¡ˆ d¡ˆ |ƒd¡ˆj dd¡ˆ d¡ˆ |ƒd¡ˆj dd¡ˆ d ¡ˆ |ƒd ¡ˆj dd¡ˆ d ¡ˆ |ƒd ¡ˆj d d ¡ˆ d ¡ˆ |ƒd ¡ˆj d d ¡ˆ d¡ˆ |ƒd¡ˆj dd¡ˆ d¡ˆ |ƒd ¡ˆj dd¡ˆ d¡ˆ |ƒd¡ˆj dd¡ˆ d¡ˆ |ƒd¡ˆj d d ¡ˆ d¡ˆ |ƒd¡ˆj d d ¡ˆ d¡ˆ |ƒd ¡ˆj dd¡ˆ d¡ˆ |ƒd ¡ˆj dd¡ˆ d¡ˆ |ƒd¡ˆj dd¡ˆ d¡ˆ |ƒd¡dS)Ncsˆjj ¡ddS)NrrJ)r-rCrKr )r r r Ú get_width³sz:LineNumbersTest.test_sidebar_text_width..get_widthrrXZfooz foo foo foo foo foo foo foo foo é zfoo é rBé zinsert -1l linestartzinsert linestartahfoo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo écédraéez50.0 -1czend -1cé1z5.0 -1crYz1.0)rUrLrrXr<)r rcr )r r Útest_sidebar_text_width®sZ                z'LineNumbersTest.test_sidebar_text_widthcCsn|j ¡|j dd¡|j ¡| d¡\}}|jjjd||d|jj ¡|j ¡|  |  ¡d¡dS)Nz1.0zone two three four rBz )rFrG)z2.0z3.0) r-r[rrXr#r)rHrCÚevent_generaterLrA)r rFrGr r r Útest_click_selectionòs    z$LineNumbersTest.test_click_selectionc Csº| |¡\}}| |¡\}}|jjjd||d|j ¡dd„}xTttt|||ddƒtt|||ddƒƒD]&\}} |jjjd|| d|j ¡qnW|jjjd||d|j ¡dS) Nz )rFrGcss<|d}x.t|ƒD]"}|||||||VqWdS)Nr)rS)ÚaÚbÚstepsZ last_stepÚir r r Úlerpsz+LineNumbersTest.simulate_drag..lerprf)rpz z) rHr-rCrlr#r)Úzipr?r) r Z start_lineZend_lineZstart_xZstart_yZend_xZend_yrrrFrGr r r Ú simulate_dragÿs     zLineNumbersTest.simulate_dragcCsB|j ¡|j dd¡|j ¡| dd¡| | ¡d¡dS)Nz1.0zone two three four five rBrY)z2.0z5.0) r-r[rrXr#r)rtrLrA)r r r r Útest_drag_selection_downs    z(LineNumbersTest.test_drag_selection_downcCsB|j ¡|j dd¡|j ¡| dd¡| | ¡d¡dS)Nz1.0zone two three four five rYrB)z2.0z5.0) r-r[rrXr#r)rtrLrA)r r r r Útest_drag_selection_up!s    z&LineNumbersTest.test_drag_selection_upcCs²|j ¡|j dd¡|j ¡|j dd¡|j ¡| |j d¡d¡| |jj  d¡d¡|jj j ddddd |j ¡|  |j d¡d¡|  |jj  d¡d¡dS) Nz1.0aôline line line line line line line line line line line line line line line line line line line line line line line line line line line line line line line line line line line line line line line line line line line line line line line line line line line line line line line line line line line line line line line line line line line line line line line line line line line line line line line line line line line line line line line line line line line line line line line line line line line line reZunitz@0,0z11.0z r)rFrGZdelta) r-r[rrXr#r)Z yview_scrollrLrrCrlÚassertNotEqual)r r r r Ú test_scroll*s     zLineNumbersTest.test_scrollcCst|j}|jd}d}| ||¡| ¡||_| ¡| ¡| |jd|¡||_| ¡| |jd|¡dS)NZfontZ TkTextFont)r-rCrwr\r2Z update_fontr[rL)r ÚlnZ orig_fontÚ test_fontr r r rz?s  zLineNumbersTest.test_fontcsxˆj‰tˆjƒ}dddœ}‡‡fdd„}ˆ ¡|ˆ_ˆ ¡ˆ ¡||ƒˆ ¡||ƒ|ˆ_ˆ ¡||ƒdS)Nz#222222z#ffff00)r+r,cs0ˆ ˆjd|d¡ˆ ˆjd|d¡dS)Nr+r,)rLrC)Zcolors)ryr r r Úassert_colors_are_equal\szFLineNumbersTest.test_highlight_colors..assert_colors_are_equal)r-Údictr.r\Z update_colorsr[)r Z orig_colorsZ test_colorsr{r )ryr r Útest_highlight_colorsVs  z%LineNumbersTest.test_highlight_colorsN)rrrÚ classmethodr'r*r:r=rArHrMrOrUrVrWrZr]r`rbrkrmrtrurvrxrzr}r r r r rs.   D   rÚ__main__rB)Ú verbosity)Zidlelib.sidebarr5Ú itertoolsrr6Z unittest.mockZ test.supportrZtkinterr"Zidlelib.delegatorrZidlelib.percolatorrrZTestCaserrÚmainr r r r Ús    [