B „ 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éz>>>)ÚtextZ indentwidthZtabwidthZprompt_last_line)Úselfr ©r úF/opt/alt/python37/lib64/python3.7/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 ¡|`dS)N)r rrZupdate_idletasksZdestroy)rr r r Ú tearDownClass!s  zParenMatchTest.tearDownClasscCs|j dd¡dS)Nz1.0Úend)r Údelete)r r r r ÚtearDown(szParenMatchTest.tearDowncCst|jƒ}dd„|_|S)NcSsdS)Nr r r r r Ú-óz/ParenMatchTest.get_parenmatch..)rrZbell)r Úpmr r r Úget_parenmatch+s  zParenMatchTest.get_parenmatchc Csü|j}| ¡}xèdD]à\}}}|j|d��Ä| dd¡||_| dd¡| d¡| d| ¡¡|d kr€|  |  d d¡d ¡|  |  d d¡|¡| dd ¡|  ¡|  d| ¡¡| |  d d¡d ¡| d¡|  |  d d¡|¡WdQRXqWdS)z2 Test ParenMatch with each style. ))Úopener)z1.10z1.11)z1.10z1.11)Údefault)z1.10z1.11)z1.10z1.11)Úparens)z1.14z1.15)z1.15z1.16)Z expression)z1.10z1.15)z1.10z1.16)Ústylez1.0rÚinsertzdef foobar(a, bÚeventz<>r Zparen)z1.10z1.11ú)r N)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_styles0s.      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 rr"r'r%)r r rr r r Útest_paren_cornerRs      z ParenMatchTest.test_paren_cornercCsN| ¡}tƒ|_| d¡| |jj¡|j ¡| d¡| |jj¡dS)Nré)rrr&Zhandle_restore_timerZ assertTrueZcalledZ reset_mockZ assertFalse)r rr r r Útest_handle_restore_timeres   z(ParenMatchTest.test_handle_restore_timerN) rrrÚ classmethodrrrrr(r)r+r r r r rs  "rÚ__main__é)Ú verbosity)Ú__doc__Zidlelib.parenmatchrZ test.supportrZunittestZ unittest.mockrZtkinterrrrZTestCaserrÚmainr r r r Ús   X