B ãxácø>ã@sädZddlmZddlZddlZddlmZddlmZm Z m Z m Z m Z ddlm Z ddlZddlmZejjZe d¡e d¡e d¡e d¡d œZd ZGd d „d ƒZGd d„dejƒZGdd„dejƒZedkràejdddS)zTest codecontext, coverage 100%é)Ú 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 dt |||ƒ|_ttj_dS)NZguiz1.0ÚleftZbothé)ZsideZfillÚexpand)ÚrowÚcolumnZsticky)rrrZwithdrawrrrrÚinsertÚ code_sampleZpackZgridrrÚeditorÚtestcfgrÚidleConfÚuserCfg)ÚclsrrrrrrÚ setUpClass7s  zCodeContextTest.setUpClasscCs@ttj_|jj dd¡|`|`|`|j  ¡|j  ¡|`dS)Nz1.0Úend) Úusercfgrr,r-r*rÚdeleterrZupdate_idletasksÚdestroy)r.rrrÚ 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 configTypeZsection)rrrÚmock_idleconf_GetFont`sz4CodeContextTest.setUp..mock_idleconf_GetFontZGetFont)rÚyviewrÚ CodeContextr*Úccr9r,r<Úunittestr ÚpatchÚobjectÚstartZ addCleanupÚstopr=)rr;ZGetHighlight_patcherr>ZGetFont_patcherr)r:rrÚsetUpNs"       zCodeContextTest.setUpcCs,|jjr|jj ¡|j ¡|j`|`dS)N)rAr8r3Ú__del__)rrrrÚtearDowngs  zCodeContextTest.tearDowncCsz|j}|j}|j}||j|ƒ||j|jƒ||jd|jdƒ| |j¡||jdgƒ||jdƒ| |jj ¡dS)Nr5)réÿÿÿÿr Fr$) Ú assertEqualr*rAÚeditwinrÚ assertIsNoner8ÚinfoÚ topvisibleÚt1)rÚeqZedrArrrÚ test_initns   zCodeContextTest.test_initcCs|j ¡dS)N)rArH)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..ÚafterrNz doesn't exist) rrVrArPrHÚ assertRaisesrrÚtkÚcallZassertInÚstrZ exception)rÚtimerÚcmrrrÚtest_del_with_timer~s   z#CodeContextTest.test_del_with_timercCstj ¡| |jjd¡dS)Né)rr@ÚreloadrKrAÚ 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)Nr5Zfgr7Zbgr6z1.0zend-1cr zHide Code ContextrVrNr$r[zShow Code ContextÚ css|]}|dVqdS)éNr)Ú.0Úxrrrú £szACodeContextTest.test_toggle_code_context_event..é r)rKrAÚtoggle_code_context_eventr8ZassertIsNotNonerr9ÚgetrLrrrXrYrPrMÚjoinÚ get_contextr?)rrQrAZtoggleZline11_contextrrrÚtest_toggle_code_context_event‰s0    z.CodeContextTest.test_toggle_code_context_eventc Cs.|j}|jj}| t¡|dddWdQRX||dƒdgdfƒ||dƒdgdfƒ||dƒddgdfƒ||d ƒdd d gdfƒ||d ƒdd d d gdfƒ||d dddd d d gdfƒ||d ddd d d gdfƒ||d ddd d gdfƒ||d ddd d d gdfƒ||d ddd d gdfƒdS)Nr$r)Zstoplineé)rcrz class C1():Úclasséé)roroz def __init__(self, a, b):Údefé )éroz def compare(self):rq)értz if a > b:Úifrg)rrrtz elif a < b:Úelifrcrt)Z stopindent)rKrArkrWÚAssertionError)rrQZgcrrrÚ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)rrJr Fr$rcz1.0zend-1cr )rcrz class C1():rnrmz class C1():ro)roroz def __init__(self, a, b):rqrpz)class C1(): def __init__(self, a, b):rg)rsroz def compare(self):rq)rtrtz if a > b:ru)rrrtz elif a < b:rvé zHclass C1(): def compare(self): if a > b: elif a < b:éz def __init__(self, a, b):) rKrAr8rhrMÚupdate_code_contextrNrOrr?rir`)rrQrArrrÚ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.0rcr(z1.5r$z12.0ryz3.0rtz1.0z5.0Zselrp) rKrAZ jumptoliner8rhrr?r{rOZmark_setr`Ztag_add)rrQrAZjumprrrÚtest_jumptoline.s<          zCodeContextTest.test_jumptoliner{cCsD|jjr|j ¡|j ¡| ¡|j ¡|j ¡| ¡dS)N)rAr8rhZ 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)Nr5Z TkTextFont)rKrArZassertNotEqualr8rhr=Z update_font)rrQrAZ orig_fontÚ test_fontrrrrds   zCodeContextTest.test_fontcs„|j‰|j‰t|jƒ}dddœ}‡‡fdd„}ˆjr<ˆ ¡||_ˆ ¡ˆ ¡||ƒˆ ¡||ƒ||_ˆ ¡||ƒdS)Nz#222222z#ffff00)r6r7cs,ˆˆjd|dƒˆˆjd|dƒdS)Nr6r7)r8)Zcolors)rArQrrÚassert_colors_are_equal„szFCodeContextTest.test_highlight_colors..assert_colors_are_equal)rKrAÚdictr9r8rhZupdate_highlight_colors)rZ orig_colorsZ test_colorsr€r)rArQrÚtest_highlight_colors}s   z%CodeContextTest.test_highlight_colorsN)rr r!Ú classmethodr/r4rGrIrRrSr]rarlrxr|r}r rCrDrr@r~rr‚rrrrr"5s   $0Q) r"c@seZdZdd„Zdd„ZdS)ÚHelperFunctionTextcCsJtj}d}x |D]\}}| ||ƒ|¡qW| |dt d¡dd¡dS)N))z first word)z Úfirst)z first word)ú r…)u ᧔᧒: )z u᧔᧒)z no spaces)r Zno)r )r r )z# TEST COMMENT)r r )z (continuation))z r z (continuation)z^(\s*)([^\s]*))Úc)z z(continuation))rZget_spaces_firstwordrKÚreÚcompile)rriZ 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():rnrcz # Class comment.rm)roz def __init__(self, a, b):rqrs)rtz if a > b:ruz if a == b:)r$z if a == b:ru)rKrZ get_line_infor)Ú splitlinesZINFINITY)rrQZgliÚlinesrrrÚtest_get_line_info³sz%HelperFunctionText.test_get_line_infoN)rr r!r‹rŽrrrrr„žsr„Ú__main__rc)Ú verbosity)Ú__doc__ZidlelibrrBZ unittest.mockZ test.supportrZtkinterrrrrrr rˆr r,r-r1ZIdleUserConfParserr+r)rZTestCaser"r„rr rrrrÚs*    k(