a  ze @sdZddlmZddlmZedddlZddlmZddlm Z m Z Gdd d Z Gd d d ej Z ed kr|ejd ddS)zTest 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)TkTextc@seZdZddZdS) DummyEditwincCs||_d|_d|_d|_dS)Nz>>>)textZ indentwidthZtabwidthZprompt_last_line)selfr r U/opt/bitninja-python-dojo/embedded/lib/python3.9/idlelib/idle_test/test_parenmatch.py__init__szDummyEditwin.__init__N)__name__ __module__ __qualname__r r r r r rsrc@sLeZdZeddZeddZddZddZd d Zd d Z d dZ dS)ParenMatchTestcCs8t|_|jt|j|_t|j|_t|j_dSN) rrootZwithdrawrr reditwinrZ text_frameclsr r r setUpClasss    zParenMatchTest.setUpClasscCs$|`|`|j|j|`dSr)r rrZupdate_idletasksZdestroyrr r r tearDownClass!s  zParenMatchTest.tearDownClasscCs|jdddS)N1.0end)r delete)r r r r tearDown(szParenMatchTest.tearDowncCst|j}dd|_|S)NcSsdSrr r r r r -z/ParenMatchTest.get_parenmatch..)rrZbellr pmr r r get_parenmatch+s  zParenMatchTest.get_parenmatchc Cs |j}|}dD]\}}}|j|d|dd||_|dd|d|d||d kr~| | d dd | | d d||dd | | d||| d dd |d| | d d|Wdq1s0YqdS)z2 Test ParenMatch with each style. ))opener1.10z1.11r#)defaultr#r#)parens)z1.141.15)r'1.16)Z expression)r$r')r$r()stylerrinsertzdef foobar(a, beventz<>r&Zparenr#)r N)r r!ZsubTestrZSTYLEr*flash_paren_eventZassertInZ event_infoZassertTupleEqualZ tag_nextrangeZ tag_prevrange restore_eventZ assertNotInZ assertEqualparen_closed_event)r r r r)Zrange1Zrange2r r r test_paren_styles0s4       z ParenMatchTest.test_paren_stylescCs^|j}|}|dd|d|dd|d|d|dd|ddS)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||jjdS)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.mockrtkinterrrrZTestCaserrmainr r r r s   X