B YI~dø>ã@sàddlmZddlZddlZddlmZddlmZmZm Z m Z m Z ddlm Z ddl Z ddlmZejjZe d¡e d¡e d¡e d¡dœZd ZGd d „d ƒZGd d „d ejƒZGdd„dejƒZedkrÜejdd�dS)é)Ú codecontextN)Úrequires)ÚNSEWÚTkÚFrameÚTextÚTclError)Úmock)ÚconfigÚ)ÚmainZ highlightÚkeysÚ extensionszó class C1(): # Class comment. def __init__(self, a, b): self.a = a self.b = b def compare(self): if a > b: return a elif a < b: return b else: return None c@s$eZdZdd„Zdd„Zdd„ZdS)Ú DummyEditwincCs"||_||_||_||_d|_dS)Nr )ÚrootÚtopZ text_frameÚtextÚlabel)ÚselfrÚframer©rúG/opt/alt/python37/lib64/python3.7/idlelib/idle_test/test_codecontext.pyÚ__init__'s zDummyEditwin.__init__cCstt|j |¡ƒƒS)N)ÚintÚfloatrÚindex)rrrrrÚ getlineno.szDummyEditwin.getlinenocKs|d|_dS)Nr)r)rÚkwargsrrrÚupdate_menu_label1szDummyEditwin.update_menu_labelN)Ú__name__Ú __module__Ú __qualname__rrrrrrrr&src@sœeZdZedd„ƒZedd„ƒZdd„Zdd„Zd d „Zd d „Z d d„Z dd„Z dd„Z dd„Z dd„Zdd„Zej ejd¡dd„ƒZdd„Zdd„Zd S)!ÚCodeContextTestcCs~tdƒtƒ}|_| ¡t|ƒ}|_t|ƒ}|_| dt ¡|j dddd�|j ddt d�t |||ƒ|_ttj_dS)NZguiz1.0ÚleftZbothé)ZsideÚfillÚexpand)ÚrowÚcolumnZsticky)rrrZwithdrawrrrrÚinsertÚ code_sampleÚpackZgridrrÚeditorÚtestcfgrÚidleConfÚuserCfg)ÚclsrrrrrrÚ setUpClass7s  zCodeContextTest.setUpClasscCs@ttj_|jj dd¡|`|`|`|j  ¡|j  ¡|`dS)Nz1.0Úend) Úusercfgrr.r/r,rÚdeleterrZupdate_idletasksÚdestroy)r0rrrÚ tearDownClassEs    zCodeContextTest.tearDownClasscs¬ˆj d¡dˆjd<t ˆj¡ˆ_dddœˆ_tjj‰‡‡fdd„}t j j   tjd |¡}|  ¡ˆ |j¡dˆ_‡fd d „}t j j   tjd |¡}|  ¡ˆ |j¡dS) NrZ TkFixedFontÚfontz#abcdefz#123456)Ú backgroundÚ foregroundcs|dkrˆjSˆ||ƒS)NÚcontext)Ú highlight_cfg)ZthemeZelement)Úorig_idleConf_GetHighlightrrrÚmock_idleconf_GetHighlightVsz9CodeContextTest.setUp..mock_idleconf_GetHighlightÚ GetHighlightcsˆjS)N)Ú font_override)rZ configTypeÚsection)rrrÚmock_idleconf_GetFont`sz4CodeContextTest.setUp..mock_idleconf_GetFontZGetFont)rÚyviewrÚ CodeContextr,Úccr;r.r>Úunittestr ÚpatchÚobjectÚstartZ addCleanupÚstopr?)rr=ZGetHighlight_patcherrAZGetFont_patcherr)r<rrÚsetUpNs"       zCodeContextTest.setUpcCs,|jjr|jj ¡|j ¡|j`|`dS)N)rDr:r5Ú__del__)rrrrÚtearDowngs  zCodeContextTest.tearDowncCsz|j}|j}|j}||j|ƒ||j|jƒ||jd|jdƒ| |j¡||jdgƒ||jdƒ| |jj ¡dS)Nr7)réÿÿÿÿr Fr$) Ú assertEqualr,rDÚeditwinrÚ assertIsNoner:ÚinfoÚ topvisibleÚt1)rÚeqZedrDrrrÚ test_initns   zCodeContextTest.test_initcCs|j ¡dS)N)rDrK)rrrrÚtest_del{szCodeContextTest.test_delc Csb|j ddd„¡}|j_|j ¡| t¡�}|jj  dd|¡WdQRX|  dt |j ƒ¡dS)Ni'cSsdS)NrrrrrÚóz5CodeContextTest.test_del_with_timer..ÚafterrQz doesn't exist) rrYrDrSrKÚ assertRaisesrrÚtkÚcallZassertInÚstrZ exception)rÚtimerÚcmrrrÚtest_del_with_timer~s   z#CodeContextTest.test_del_with_timercCstj ¡| |jjd¡dS)Né)rrCÚreloadrNrDÚ context_depth)rrrrÚ test_reload…s zCodeContextTest.test_reloadcCsJ|j}|j}|j}|jr|ƒ|ƒ| |j¡||jd|jdƒ||jd|jdƒ||jd|jdƒ||j dd¡dƒ||jj d ƒ||j j   d d |jj ¡d d ƒ|ƒ| |j¡||jj dƒ| |jj ¡d dd„| d¡dDƒ¡}|j d¡|ƒ||j dd¡|ƒ|ƒ|ƒ||j dd¡|ƒdS)Nr7Zfgr9Úbgr8z1.0zend-1cr zHide Code ContextrYrQr$r^zShow Code ContextÚ css|]}|dVqdS)éNr)Ú.0Úxrrrú £szACodeContextTest.test_toggle_code_context_event..é r)rNrDÚtoggle_code_context_eventr:ZassertIsNotNonerr;ÚgetrOrrr[r\rSrPÚjoinÚ get_contextrB)rrTrDZtoggleZline11_contextrrrÚtest_toggle_code_context_event‰s0    z.CodeContextTest.test_toggle_code_context_eventc Cs.|j}|jj}| t¡�|ddd�WdQRX||dƒdgdfƒ||dƒdgdfƒ||dƒddgdfƒ||d ƒdd d gdfƒ||d ƒdd d d gdfƒ||d dd�dd d d gdfƒ||d dd�d d d gdfƒ||d dd�d d gdfƒ||d dd�d d d gdfƒ||d dd�d d gdfƒdS)Nr$r)Zstoplineé)rgrz class C1():Úclasséé)rsrsz def __init__(self, a, b):Údefé )érsz def compare(self):ru)érxz if a > b:Úifrk)rvrxz elif a < b:Úelifrgrx)Z stopindent)rNrDrorZÚAssertionError)rrTZgcrrrÚtest_get_context­s:           z CodeContextTest.test_get_contextcCs*|j}|j}|js| ¡| | ¡¡||jdgƒ||jdƒ|j  d¡| ¡||jdgƒ||jdƒ||j  dd¡dƒ|j  d¡| ¡||jddgƒ||jdƒ||j  dd¡d ƒ|j  d¡| ¡||jddgƒ||jd ƒ||j  dd¡d ƒ|j  d ¡| ¡||jddd gƒ||jd ƒ||j  dd¡d ƒ|j  d¡| ¡||jdddddgƒ||jdƒ||j  dd¡dƒ| ¡d|_ ||jdddddgƒ||jdƒ||j  dd¡dƒ|j  d ¡| ¡||jddd gƒ||jdƒ||j  dd¡dƒdS)N)rrMr Fr$rgz1.0zend-1cr )rgrz class C1():rrrqz class C1():rs)rsrsz def __init__(self, a, b):rurtz)class C1(): def __init__(self, a, b):rk)rwrsz def compare(self):ru)rxrxz if a > b:ry)rvrxz elif a < b:rzé zHclass C1(): def compare(self): if a > b: elif a < b:éz def __init__(self, a, b):) rNrDr:rlrPÚupdate_code_contextrQrRrrBrmrc)rrTrDrrrÚtest_update_code_contextÝsl              z(CodeContextTest.test_update_code_contextcCs.|j}|j}|j}|js | ¡|j d¡| ¡||jdƒ|j  dd¡|ƒ||jdƒ|j d¡| ¡||jdƒ|j  dd¡|ƒ||jd ƒd|_ |j d¡| ¡||jdƒ|j  dd ¡|ƒ||jd ƒ|j d ¡| ¡|j  d d d¡|j  dd ¡|ƒ||jd ƒdS)Nz2.0rgr)z1.5r$z12.0r}z3.0rxz1.0z5.0Zselrt) rNrDZ jumptoliner:rlrrBrrRZmark_setrcZtag_add)rrTrDZjumprrrÚtest_jumptoline.s<          zCodeContextTest.test_jumptolinercCsD|jjr|j ¡|j ¡| ¡|j ¡|j ¡| ¡dS)N)rDr:rlZ timer_eventZassert_not_calledZ assert_called)rZ mock_updaterrrÚtest_timer_eventWs    z CodeContextTest.test_timer_eventcCs€|j}|j}|jd}d}| ||¡|jdk r8| ¡||_| ¡| ¡||jd|ƒ||_| ¡||jd|ƒdS)Nr7Z TkTextFont)rNrDrZassertNotEqualr:rlr?Z update_font)rrTrDZ orig_fontÚ test_fontrrrrƒds   zCodeContextTest.test_fontcs„|j‰|j‰t|jƒ}dddœ}‡‡fdd„}ˆjr<ˆ ¡||_ˆ ¡ˆ ¡||ƒˆ ¡||ƒ||_ˆ ¡||ƒdS)Nz#222222z#ffff00)r8r9cs,ˆˆjd|dƒˆˆjd|dƒdS)Nr8r9)r:)Zcolors)rDrTrrÚassert_colors_are_equal„szFCodeContextTest.test_highlight_colors..assert_colors_are_equal)rNrDÚdictr;r:rlZupdate_highlight_colors)rZ orig_colorsZ test_colorsr„r)rDrTrÚtest_highlight_colors}s   z%CodeContextTest.test_highlight_colorsN)rr r!Ú classmethodr1r6rJrLrUrVr`rdrpr|r€r�r rFrGrrCr‚rƒr†rrrrr"5s   $0Q) r"c@seZdZdd„Zdd„ZdS)ÚHelperFunctionTextcCsJtj}d}x |D]\}}| ||ƒ|¡qW| |dt d¡d�d¡dS)N))z first word)z Úfirst)z first word)ú r‰)u ᧔᧒: )z u᧔᧒)z no spaces)r Úno)r )r r )z# TEST COMMENT)r r )z (continuation))z r z (continuation)z^(\s*)([^\s]*))Úc)z z(continuation))rZget_spaces_firstwordrNÚreÚcompile)rrmZ test_linesÚlineZexpected_outputrrrÚtest_get_spaces_firstword s z,HelperFunctionText.test_get_spaces_firstwordcCs�|j}tj}t ¡}|||dƒtjddfƒ|||dƒdƒ|||dƒtjddfƒ|||dƒd ƒ|||d ƒd ƒ||d ƒd ƒdS)Nrr Fr$)rz class C1():rrrgz # Class comment.rq)rsz def __init__(self, a, b):rurw)rxz if a > b:ryz if a == b:)r$z if a == b:ry)rNrZ get_line_infor*Ú splitlinesZINFINITY)rrTZgliÚlinesrrrÚtest_get_line_info³sz%HelperFunctionText.test_get_line_infoN)rr r!r�r“rrrrrˆžsrˆÚ__main__rg)Ú verbosity)ZidlelibrrEZ unittest.mockZ test.supportrZtkinterrrrrrr r�r r.r/r3ZIdleUserConfParserr-r*rZTestCaser"rˆrr rrrrÚs(    k(