B xc @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 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@sLeZdZeddZeddZddZddZd d Zd d Z d dZ dS)ParenMatchTestcCs8t|_|jt|j|_t|j|_t|j_dS)N) rrootZwithdrawrr reditwinrZ text_frame)clsr r r setUpClasss    zParenMatchTest.setUpClasscCs$|`|`|j|j|`dS)N)r rrZupdate_idletasksZdestroy)rr r r tearDownClass!s  zParenMatchTest.tearDownClasscCs|jdddS)Nz1.0end)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}|}xdD]\}}}|j|d|dd||_|dd|d|d||d kr| | d dd | | d d||dd | | d||| d dd |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.0rinsertzdef foobar(a, beventz<>r Zparen)z1.10z1.11)r N)r rZsubTestrZSTYLEr"flash_paren_eventZassertInZ event_infoZassertTupleEqualZ tag_nextrangeZ tag_prevrange restore_eventZ assertNotInZ assertEqualparen_closed_event)r r rr!Zrange1Zrange2r r r test_paren_styles0s.      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 rr"r'r%)r r rr r r test_paren_cornerRs      z ParenMatchTest.test_paren_cornercCsN|}t|_|d||jj|j|d||jjdS)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.mockrZtkinterrrrZTestCaserrmainr r r r s   X