3 § f¸ ã@s€dZddlmZddlmZedƒddlZddlmZddlm Z m Z Gdd „d ƒZ Gd d „d ej ƒZ ed kr|ejd d�dS)z¥Test parenmatch, coverage 91%. This must currently be a gui test because ParenMatch methods use several text methods not defined on idlelib.idle_test.mock_tk.Text. é)Ú ParenMatch)ÚrequiresZguiN)ÚMock)ÚTkÚTextc@seZdZdd„ZdS)Ú DummyEditwincCs||_d|_d|_d|_dS)NéT)ÚtextZ indentwidthZtabwidthZcontext_use_ps1)Úselfr ©r úF/opt/alt/python36/lib64/python3.6/idlelib/idle_test/test_parenmatch.pyÚ__init__szDummyEditwin.__init__N)Ú__name__Ú __module__Ú __qualname__r r r r r rsrc@sLeZdZedd„ƒZedd„ƒZdd„Zdd„Zd d „Zd d „Z d d„Z dS)ÚParenMatchTestcCs8tƒ|_|jjƒt|jƒ|_t|jƒ|_tƒ|j_dS)N) rÚrootZwithdrawrr rÚeditwinrZ text_frame)Úclsr r r Ú setUpClasss    zParenMatchTest.setUpClasscCs$|`|`|jjƒ|jjƒ|`dS)N)r rrZupdate_idletasksZdestroy)rr r r Ú tearDownClass!s  zParenMatchTest.tearDownClasscCs|jjddƒdS)Nz1.0Úend)r Údelete)r r r r ÚtearDown(szParenMatchTest.tearDowncCst|jƒ}dd„|_|S)NcSsdS)Nr r r r r Ú-sz/ParenMatchTest.get_parenmatch..)rrZbell)r Úpmr r r Úget_parenmatch+s  zParenMatchTest.get_parenmatchc Csþ|j}|jƒ}�xèd D]à\}}}|j|d ��Ä|jd d ƒ||_|jd dƒ|jdƒ|jd|jƒƒ|dkr‚|j |j dd ƒd!ƒ|j |j dd ƒ|ƒ|jd dƒ|j ƒ|j d|jƒƒ|j|j dd ƒfƒ|jdƒ|j |j dd ƒ|ƒWdQRXqWdS)"z2 Test ParenMatch with each style. Úopenerú1.10ú1.11ÚdefaultÚparensú1.14ú1.15ú1.16Ú expression)Ústylez1.0rÚinsertzdef foobar(a, bÚeventz<>Zparenú)N©rr©rr©rr*r+©rr©rr©r r-r.©r"r#©r#r$©r!r0r1©rr#©rr$©r%r3r4)r,r/r2r5)rr)r rZsubTestrZSTYLEr'Úflash_paren_eventZassertInZ event_infoZassertTupleEqualZ tag_nextrangeZ tag_prevrangeÚ restore_eventZ assertNotInZ assertEqualÚparen_closed_event)r r rr&Zrange1Zrange2r r r Útest_paren_styles0s4      z ParenMatchTest.test_paren_stylescCs^|j}|jƒ}|jddƒ|jdƒ|jddƒ|jdƒ|jdƒ|jddƒ|jdƒdS)z— Test corner cases in flash_paren_event and paren_closed_event. These cases force conditional expression and alternate paths. r'z# this is a commen)r(z defz a, *arg)N)r rr'r8r6)r r rr r r Útest_paren_cornerRs      z ParenMatchTest.test_paren_cornercCsN|jƒ}tƒ|_|jdƒ|j|jjƒ|jjƒ|jdƒ|j|jjƒdS)Nré)rrr7Zhandle_restore_timerZ assertTrueZcalledZ reset_mockZ assertFalse)r rr r r Útest_handle_restore_timeres   z(ParenMatchTest.test_handle_restore_timerN) rrrÚ classmethodrrrrr9r:r<r r r r rs  "rÚ__main__é)Ú verbosity)Ú__doc__Zidlelib.parenmatchrZ test.supportrZunittestZ unittest.mockrZtkinterrrrZTestCaserrÚmainr r r r Ús   X