a 9dg @s|ddlmZddlmZedddlZddlmZddlmZm Z GdddZ Gd d d ej Z e d krxejd d dS)) ParenMatch)requiresZguiN)Mock)TkTextc@seZdZddZdS) DummyEditwincCs||_d|_d|_d|_dS)Nz>>>)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@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)N))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 )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)Nr*z# this is a commen)r+z defz a, *arg))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)Zidlelib.parenmatchrZ test.supportrZunittestZ unittest.mockrtkinterrrrZTestCaserrmainr r r r s   X