a 9êdgÞ ã@s€dZddlmZddlmZedƒddlZddlmZddlm Z m Z Gdd „d ƒZ Gd d „d ej ƒZ ed kr|ejd ddS)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éz>>>)ÚtextZ indentwidthZtabwidthZprompt_last_line)Úselfr ©r ú=/usr/local/lib/python3.9/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ƒ|_|j ¡t|jƒ|_t|jƒ|_tƒ|j_dS©N) rÚrootZwithdrawrr rÚeditwinrZ text_frame©Úclsr r r Ú setUpClasss    zParenMatchTest.setUpClasscCs$|`|`|j ¡|j ¡|`dSr)r rrZupdate_idletasksZdestroyrr r r Ú tearDownClass!s  zParenMatchTest.tearDownClasscCs|j dd¡dS)Nú1.0Úend)r Údelete)r r r r ÚtearDown(szParenMatchTest.tearDowncCst|jƒ}dd„|_|S)NcSsdSrr r r r r Ú-óz/ParenMatchTest.get_parenmatch..)rrZbell©r Úpmr r r Úget_parenmatch+s  zParenMatchTest.get_parenmatchc Cs |j}| ¡}dD]ô\}}}|j|dÎ| dd¡||_| dd¡| d¡| d| ¡¡|d kr~|  |  d d¡d ¡|  |  d d¡|¡| dd ¡|  ¡|  d| ¡¡| |  d d¡d ¡| d¡|  |  d d¡|¡Wdƒq1sü0YqdS)z2 Test ParenMatch with each style. ))Úopener©ú1.10z1.11r#)Údefaultr#r#)Úparens)z1.14ú1.15)r'ú1.16)Z expression)r$r')r$r()ÚstylerrÚinsertzdef foobar(a, bÚeventz<>r&Zparenr#ú)r N)r r!ZsubTestrZSTYLEr*Úflash_paren_eventZassertInZ event_infoZassertTupleEqualZ tag_nextrangeZ tag_prevrangeÚ restore_eventZ assertNotInZ assertEqualÚparen_closed_event)r r r r)Zrange1Zrange2r r r Útest_paren_styles0s4   ÿ ÿ ÿ  ÿz ParenMatchTest.test_paren_stylescCs^|j}| ¡}| dd¡| d¡| dd¡| d¡| d¡| dd¡| d¡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 r!r*r/r-)r r r r r r Útest_paren_cornerRs      z ParenMatchTest.test_paren_cornercCsN| ¡}tƒ|_| d¡| |jj¡|j ¡| d¡| |jj¡dS)Nré)r!rr.Zhandle_restore_timerZ assertTrueZcalledZ reset_mockZ assertFalserr r r Útest_handle_restore_timeres   z(ParenMatchTest.test_handle_restore_timerN) rrrÚ classmethodrrrr!r0r1r3r r r r rs  "rÚ__main__é)Ú verbosity)Ú__doc__Zidlelib.parenmatchrZ test.supportrZunittestZ unittest.mockrÚtkinterrrrZTestCaserrÚmainr r r r Ús   X