3 Õì2až8ã@sÔddlmZddlZddlmZddlmZmZmZm Z ddlm Z ddl Z ddlm Z ej jZe jdƒe jdƒe jdƒe jdƒdœZd ZGd d „d ƒZGd d „d ejƒZGdd„dejƒZedkrÐejdd�dS)é)Ú codecontextN)Úrequires)Ú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@seZdZdd„ZdS)Ú DummyEditwincCs||_||_||_||_dS)N)ÚrootÚtopZ text_frameÚtext)ÚselfrÚframer©rú5/opt/alt/python36/lib64/python3.6/test_codecontext.pyÚ__init__&szDummyEditwin.__init__N)Ú__name__Ú __module__Ú __qualname__rrrrrr%src@sŒeZdZedd„ƒZedd„ƒZdd„Zdd„Zd d „Zd d „Z d d„Z dd„Z dd„Z dd„Z dd„Zejjejdƒdd„ƒZdd„ZdS)ÚCodeContextTestcCs~tdƒtƒ}|_|jƒt|ƒ}|_t|ƒ}|_|jdt ƒ|j dddd�|j dddd�t |||ƒ|_ t tj_dS)NZguiz1.0ÚleftZbothé)ZsideÚfillÚexpandr)rrrZwithdrawrrrrÚinsertÚ code_sampleÚpackrÚeditorÚtestcfgrÚidleConfÚuserCfg)ÚclsrrrrrrÚ setUpClass/s  zCodeContextTest.setUpClasscCs@ttj_|jjjddƒ|`|`|`|jj ƒ|jj ƒ|`dS)Nz1.0Úend) Úusercfgrr$r%r"rÚdeleterrZupdate_idletasksÚdestroy)r&rrrÚ tearDownClass=s    zCodeContextTest.tearDownClasscCs|jjdƒtj|jƒ|_dS)Nr)rÚyviewrÚ CodeContextr"Úcc)rrrrÚsetUpFs zCodeContextTest.setUpcCs,|jjr|jjjƒ|jjƒ|j`|`dS)N)r/Úcontextr+Ú__del__)rrrrÚtearDownJs  zCodeContextTest.tearDowncCs¨|j}|j}|j}||j|ƒ||j|jƒ||j|jdƒ|j|jƒ||jd gƒ||j dƒ||j j j dd|jj ƒddƒ||j j j dd|jjƒddƒdS) NÚfontrrr FÚafterÚinfoZtimeréÿÿÿÿ)rr7r F)Ú assertEqualr"r/ZeditwinrÚtextfontÚ assertIsNoner1r6Ú topvisiblerÚtkÚcallÚt1Út2)rÚeqZedr/rrrÚ test_initQs    zCodeContextTest.test_initcCs”|jjƒ|jtƒ�(}|jjjdd|jjƒ|jd|ƒWdQRX|jtƒ�(}|jjjdd|jj ƒ|jd|ƒWdQRX|j`|j` |jjƒdS)Nr5r6z doesn't exist) r/r2Ú assertRaisesrrr<r=r>ZassertInr?)rÚmsgrrrÚtest_del_s    zCodeContextTest.test_delcCs4tjjƒ|j|jjdddœƒ|j|jjdƒdS)NZ lightgrayz#000000)Ú backgroundÚ foregroundé)rr.Úreloadr8r/ÚcolorsÚ context_depth)rrrrÚ test_reloadls   zCodeContextTest.test_reloadcCs¤|j}|j}|j}|jr|ƒ||ƒdƒ|j|jƒ||jd|jƒ||jd|jdƒ||jd|jdƒ||jjddƒd ƒ||ƒdƒ|j|jƒdS) NÚbreakr4ZfgrFÚbgrEz1.0zend-1cr ) r8r/Útoggle_code_context_eventr1ZassertIsNotNoner9rIÚgetr:)rr@r/ZtogglerrrÚtest_toggle_code_context_eventrs   z.CodeContextTest.test_toggle_code_context_eventcCs.|j}|jj}|jtƒ�|ddd�WdQRX||dƒdgdfƒ||dƒdgdfƒ||d ƒddgdfƒ||d ƒdddgdfƒ||dƒdddd gdfƒ||ddd�d!d"d#d$gdfƒ||ddd�d%d&d'gdfƒ||ddd�d(d)gdfƒ||ddd�d*d+d,gdfƒ||ddd�d-d.gdfƒdS)/Nrr)Zstoplineééú class C1():Úclassééú def __init__(self, a, b):Údefé éú def compare(self):éú if a > b:Úifé ú elif a < b:Úelif)Z stopindent)rRrrSrT)rRrrSrT)rRrrSrT)rUrUrWrX)rRrrSrT)rZrUr[rX)r\r\r]r^)rRrrSrT)rZrUr[rX)r\r\r]r^)rYr\r`ra)rRrrSrT)rZrUr[rX)r\r\r]r^)rYr\r`ra)rZrUr[rX)r\r\r]r^)rYr\r`ra)r\r\r]r^)rYr\r`ra)rZrUr[rX)r\r\r]r^)rYr\r`ra)r\r\r]r^)rYr\r`ra)r8r/Z get_contextrBÚAssertionError)rr@ÚgcrrrÚtest_get_context‡s:           z CodeContextTest.test_get_contextc Cs*|j}|j}|js|jƒ|j|jƒƒ||jdgƒ||jdƒ|jj dƒ|jƒ||jdgƒ||jdƒ||jj ddƒdƒ|jj dƒ|jƒ||jd!d"gƒ||jd ƒ||jj ddƒdƒ|jj d ƒ|jƒ||jd$d%gƒ||jd ƒ||jj ddƒdƒ|jj d ƒ|jƒ||jd'd(d)gƒ||jdƒ||jj ddƒdƒ|jj dƒ|jƒ||jd+d,d-d.d/gƒ||jdƒ||jj ddƒdƒ|jƒd|_ ||jd1d2d3d4d5gƒ||jdƒ||jj ddƒdƒ|jj dƒ|jƒ||jd7d8d9gƒ||jdƒ||jj ddƒd ƒdS):Nrrr FrRz1.0zend-1cú class C1():rTrQrUú def __init__(self, a, b):rXrVz)class C1(): def __init__(self, a, b):r_rZú def compare(self):r\ú if a > b:r^rYú elif a < b:raé zHclass C1(): def compare(self): if a > b: elif a < b:ér7)rr7r Fr7)rr7r Fr7)rr7r F)rRrrerTr7)rr7r F)rRrrerTr7)rr7r F)rRrrerT)rUrUrfrXr7)rr7r F)rRrrerT)rZrUrgrX)r\r\rhr^)rYr\rirar7)rr7r F)rRrrerT)rZrUrgrX)r\r\rhr^)rYr\rirar7)rr7r F)rRrrerT)rUrUrfrX) r8r/r1rNr:Úupdate_code_contextr6r;rr-rOrJ)rr@r/rrrÚtest_update_code_context·sl              z(CodeContextTest.test_update_code_contextcCsü|j}|j}|j}|js |jƒ|jjd›d�ƒ|jƒ||jdƒ|jj ddƒ|ƒ||jdƒ|jjd›d�ƒ|jƒ||jdƒ|jj ddƒ|ƒ||jdƒd|_ |jjd›d�ƒ|jƒ||jdƒ|jj dd ƒ|ƒ||jdƒdS) NrRz.0rz1.5rrjz3.0r\z1.0) r8r/Z jumptoliner1rNrr-rlr;Zmark_setrJ)rr@r/ZjumprrrÚtest_jumptolines0     zCodeContextTest.test_jumptolinerlcCsD|jjr|jjƒ|jjƒ|jƒ|jjƒ|jjƒ|jƒdS)N)r/r1rNZ timer_eventZassert_not_calledZ assert_called)rZ mock_updaterrrÚtest_timer_event)s    z CodeContextTest.test_timer_eventcCs¾|j}|j}|jd}tjj}d}dddœ}|jr:|jƒ||jd<|tj_|jƒ||j |ƒ||j |ƒ|jƒ||jd<|tj_|jƒ||j |ƒ||j |ƒ||jd|ƒ||jd|dƒ||jd|dƒ||jd<|jƒ||j |ƒ||j |ƒ||jd|ƒ||jd|dƒ||jd|dƒ||jd<|tj_|jƒ||j |ƒ||j |ƒ||jd|ƒ||jd|dƒ||jd|dƒ|tj_|jƒdS)Nr4ZFakeFontz#222222z#ffff00)rErFrErF) r8r/rrr.rIr1rNZconfig_timer_eventr9Z contextcolors)rr@r/Z save_fontZ save_colorsZ test_fontZ test_colorsrrrÚtest_config_timer_event6sN              z'CodeContextTest.test_config_timer_eventN)rrrÚ classmethodr'r,r0r3rArDrKrPrdrmrnrZpatchÚobjectrr.rorprrrrr-s   0Q! rc@seZdZdd„Zdd„ZdS)ÚHelperFunctionTextc CsJtj}d}x |D]\}}|j||ƒ|ƒqW|j|d tjdƒd�d ƒdS)!Nú first wordú Úfirstú first wordú õ ᧔᧒: ú õ᧔᧒ú no spacesr Únoú# TEST COMMENTú (continuation)z^(\s*)([^\s]*))Úcú(continuation)©rurv©rtr‚©rxrv©rwr„©rzr{©ryr†©r r}©r|rˆ©r r ©r rŠ©r r ©r~rŒ©rur ©rrŽ)rƒr…r‡r‰r‹r�r�)rur�)rZget_spaces_firstwordr8ÚreÚcompile)rrOZ test_linesÚlineZexpected_outputrrrÚtest_get_spaces_firstwordls z,HelperFunctionText.test_get_spaces_firstwordcCs�|j}tj}tjƒ}|||dƒtjddfƒ|||dƒdƒ|||dƒtjddfƒ|||d ƒdƒ|||d ƒdƒ||dƒdƒdS)Nrr Frú class C1():rTrRz # Class comment.rQrUú def __init__(self, a, b):rXrZr\ú if a > b:r^ú if a == b:)rr”rT)rUr•rX)r\r–r^)rr—r^)r8rZ get_line_infor Ú splitlinesZINFINITY)rr@ZgliÚlinesrrrÚtest_get_line_infosz%HelperFunctionText.test_get_line_infoN)rrrr“ršrrrrrsjsrsÚ__main__rR)Ú verbosity)ZidlelibrZunittestZ test.supportrZtkinterrrrrrr�r r$r%r)ZIdleUserConfParserr#r rZTestCaserrsrr rrrrÚs&    ?(