a  zeB@svdZddlZddlmZddlmZGdddeZGdddeejZ Gd d d eejZ e d krrej d d ddS)zi Test mock_tk.Text class against tkinter.Text class Run same tests with both by creating a mixin class. N)requires)TclErrorc@sleZdZdZdZedZddZddZdd Zd d Z d d Z ddZ ddZ ddZ ddZddZdS)TextTestz*Define items common to both sets of tests.z hello world cCs,||jdd||jdddS)N1.0rend) assertEqualtextgetselfrO/opt/bitninja-python-dojo/embedded/lib/python3.9/idlelib/idle_test/test_text.py test_initszTextTest.test_initcCs@|jj}dD]}|||dq dD]}|||dq&dS)N)333333?1.-1r 1.0 lineend1.end1.33insertr)rg@2.133.442.0)r indexr r rZdexrrrtest_index_emptys zTextTest.test_index_emptycCsj|jj}|jd|jdD]}|||dqdD]}|||dq6dD]}|||dqPdS)Nr)rrrr)rrrz1.5)rrz3.0)r rrhwr rrrrtest_index_data szTextTest.test_index_datacCs|jj}|j}|jd|j||dd||ddd||dd||ddd||ddd||ddd||dd d ||dd d ||d d ||dd d||dd|j||dd|j||dd|jdS)Nrrrh1.11.3Zhelelrhello1.10r2.3zello worz2.5z0.0z5.0)r r r rrhwn)r r Equalrrrtest_get-s zTextTest.test_getcCs|jj}|jj}|j}|d|j||dd|j|dd||dd|j|dd||ddd|dd||ddd|dd||ddd |dd ||ddd |d d ||ddddS)Nrrr*z *hello world rz*hello* world r&z*hello* wor*ld xz*hello* wor*ldx 1.4zx z*helx lo* wor*ldx )r rr r rr')r rr r(rrr test_insert@s"       zTextTest.test_insertcCs|jj}|jj}|j}|jd|j|d||dd|j|d||dd|j|dd||dd|j|dd||dd|j|dd||dd|j|dd||dd|jdS)Nrrrz5.5r,)r deleter r rrr'r r.r r(rrrtest_no_deleteZs     zTextTest.test_no_deletecCs|jj}|jj}|j}|jd|j|d||ddd|dd||ddd|d||ddd|jdd|d ||ddd|jdd|dd ||ddddS) NrrZellor!ZlloZlloworldr"rr%rr r.r r rrr/rrrtest_delete_charss   zTextTest.test_delete_charcCs|jj}|jj}|j}|jd|j|dd||ddd|dd||ddd|jd|j|dd||ddd|dd||ddd|jd|j|dd ||ddd dS) Nrrrz world rrzworld z1.2r&zheld r1r/rrrtest_delete_slices      zTextTest.test_delete_slicecCsZ|jdd|jdd||jddd|jdd||jddddS) Nrr$r"z 1 2 3 4 5rzhel1 2 3 4 5lo z5.1zhello )r rr r r.r rrrtest_multiple_liness zTextTest.test_multiple_linesc Cs|jj}|j}|jdd|t|ddddD]t\}}}}}}||d|d||||d|d||||d|d||||d|d||||d |d||q2dS) NrzFirst Second Third z2.2op))FFFTT)z>=FFTTT)z==FFTFF)z!=TTFTTr!rr&z3.3)r comparer rZ assertRaisesr) r r8r(r5Zless1Zless0ZequalZgreater0Zgreater1rrr test_compareszTextTest.test_compareN)__name__ __module__ __qualname____doc__rr'rrrr)r-r0r2r3r4r9rrrrr s   rc@s(eZdZeddZddZddZdS) MockTextTestcCsddlm}||_dS)Nr)Text)Zidlelib.idle_test.mock_tkr?)clsr?rrr setUpClasss zMockTextTest.setUpClasscCs||_dSN)r?r r rrrsetUpszMockTextTest.setUpcCsb|jj}|j}|jd|j||ddd||ddd||ddd||ddddS)Nrr)z3.1r)rE)r Z_decoder rr)r decoder(rrr test_decodeszMockTextTest.test_decodeN)r:r;r< classmethodrArCrIrrrrr>s r>c@s,eZdZeddZeddZddZdS) TkTextTestcCs*tdddlm}m}||_||_dS)NZguir)Tkr?)rtkinterrLr?root)r@rLr?rrrrAszTkTextTest.setUpClasscCs|j|`dSrB)rNZdestroy)r@rrr tearDownClasss zTkTextTest.tearDownClasscCs||j|_dSrB)r?rNr r rrrrCszTkTextTest.setUpN)r:r;r<rJrArOrCrrrrrKs   rK__main__rEF) verbosityexit) r=ZunittestZ test.supportrZ_tkinterrobjectrZTestCaser>rKr:mainrrrrs  :